Question

Comment puis-je obtenir SSIS pour se connecter à un cube Oracle Hyperion Essbase pour l'utiliser comme une source de données? Googler ce qui suit retourné:

  1. question similaire a été interrogé sur une version spécifique sans vraie réponse autre que « un outil tiers peut le faire. »

  2. connecteurs Microsoft SSIS wiki indique que vous pouvez le faire par étoiles Analytics .

  3. À partir de SQL Server 2005 SP2, Reporting services (SSRS) a une connexion à la source de données. Cette caractéristique du produit ne semble pas se traduire par des objets pour SSIS. Un blogueur a suggéré que ce pourrait avoir été fait comme quid pro quo back arrangement avant Oracle acheté Hyperion depuis Hyperion a commencé à soutenir la connexion à SQL Server 2005 cubes SSAS à ce moment-là.

  4. Comme par @billinkc il utiliser pour se connecter avec .NET droit. Un peu de creuser retourné Hyperion Application Builder .NET (HAB.NET). Au début, cela semblait être une solution prometteuse, mais il se trouve a été arrêté le produit avec la version 11.1.3. @billinkc a également fourni un exemple de code, alors je vais le tester et voir si cela fonctionne.

En dehors de la licence du produit serveur Analytics étoiles qui est un coût prohibitif (pour moi), y at-il d'autres solutions là-bas?

Était-ce utile?

La solution

Je n'avais pas entendu parler de HAB.NET mais +1 pour trouver cela. Au lieu de cela, je viens d'avoir un test de connectivité simple passe dans la saleté .NET comme ci-dessous. J'ai modifié un peu de travail avec les trucs DTS. , Vous aurez évidemment besoin de définir vos colonnes et types tampons, mais nous espérons que cela vous fait à travers les choses hyperion.

Pour accéder à la classe Microsoft.AnalysisServices.AdomdClient, ajouter une référence à ADOMD.NET et sauver tous. Ensuite, le ci-dessous le code fonctionnera correctement.

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;

using Microsoft.AnalysisServices.AdomdClient;

public class ScriptMain : UserComponent
{
    public override void CreateNewOutputRows()
    {
        string connectionString = string.Empty;
        connectionString = "Provider=MSOLAP;Data Source=http://hyperion00:13080/aps/XMLA; Initial Catalog=GrossRev;User Id=Revenue;Password=ea$yMon3y;";
        string query = "SELECT ...";
        AdomdDataReader reader = null;
        try
        {
            using (AdomdConnection conn = new AdomdConnection(connectionString))
            {
                conn.Open();
                using (AdomdCommand cmd = new AdomdCommand(query, conn))
                {
                    reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        // Replace Console.WriteLine with assignment of
                        // Output0Buffer.AddRow();
                        // Output0Buffer.column = (stronglyTyped) reader[i]
                        Console.WriteLine(reader.GetString(0));
                        Console.WriteLine(reader.GetString(1));
                    }
                    Console.WriteLine("fin");
                }

            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);

            throw;
        }
    }
}

Autres conseils

Dans le cas où tout le monde a besoin, le plus facile et la plus directe est par SSRS. Plus d'informations ici: https: / /samtran.me/2017/05/05/interrogating-and-automation-of-essbase-cubes-with-essbase-web-services/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top