Frage

Wie kann ich SSIS dazu bringen, eine Verbindung zu einem Oracle Hyperion Essbase Cube herzustellen, um sie als Datenquelle zu verwenden? Das Googeln gab Folgendes zurück:

  1. EIN Ähnliche Frage wurde nach einer bestimmten Version ohne echte Antwort als "Ein Drittwerkzeug kann es tun" gefragt.

  2. EIN Microsoft SSIS Connectors Wiki zeigt an, dass Sie dies durchführen können Star Analytics.

  3. Beginnend mit SQL Server 2005 SP2, Berichtsdienste (SSRS) hat eine Datenquellenverbindung. Diese Produktfunktion schien sich nicht in Objekte für SSIS zu übersetzen. Ein Blogger schlug vor, dass dies möglicherweise als getan wurde Gegenleistung Arrangement zurück, bevor Oracle Hyperion kaufte, seit Hyperion zu dieser Zeit mit der Unterstützung der Verbindung zu SQL Server 2005 SSAS Cubes begann.

  4. Laut @Billinkc verbindet er sich mit geradem .NET mit. Ein wenig Graben kehrte zurück Hyperion Application Builder .net (Hab.net). Zuerst schien dies eine vielversprechende Lösung zu sein, aber es stellte sich heraus, dass das Produkt mit der Veröffentlichung von 11.1.3 eingestellt wurde. @Billinkc hat jetzt auch ein Code -Beispiel bereitgestellt, also werde ich es testen und sehen, ob dies funktioniert.

Gibt es abgesehen von der Lizenzierung des Star Analytics Server -Produkts, das (für mich) kostenintensiv ist, noch andere Lösungen?

War es hilfreich?

Lösung

Ich hatte nichts von Hab.net gehört, aber +1, weil ich das gefunden hatte. Stattdessen hatte ich gerade einen Dirt -einfachen Konnektivitätstest, der wie unten in .NET ging. Ich habe es ein bisschen geändert, um mit dem DTS -Zeug zu arbeiten. Natürlich müssen Sie Ihre Pufferspalten und -Typen definieren, aber hoffentlich bringt Sie das Hyperion -Zeug durch.

Um auf die Klasse von Microsoft.AnalysisServices.Adomdclient zuzugreifen, fügen Sie einen Verweis auf adomd.net hinzu und speichern Sie alle. Dann funktioniert der folgende Code ordnungsgemäß.

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;
        }
    }
}

Andere Tipps

Falls jemand es braucht, ist der einfachste und direkteste Weg durch SSRs. Weitere Informationen hier:https://samtran.me/2017/05/05/interrogating-tomation-of-essbase-cubes-with-essbase-web-services/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top