Domanda

Come posso convincere SSIS a connettersi a un cubo di Oracle Hyperion Essbase per utilizzarlo come fonte di dati? Googling questo restituito quanto segue:

  1. UN Domanda simile è stato chiesto di una versione specifica senza una risposta reale oltre a "uno strumento di terze parti può farlo".

  2. UN Wiki connettori Microsoft SSIS indica che puoi farlo Analisi delle stelle.

  3. A partire da SQL Server 2005 SP2, Servizi di reporting (SSRS) ha una connessione dell'origine dati. Questa caratteristica del prodotto non sembrava tradurre in nessun oggetto per SSIS. Un blogger ha suggerito che questo potrebbe essere stato fatto come a quid pro quo La disposizione prima che Oracle acquistasse Hyperion da quando Hyperion iniziasse a supportare la connessione ai cubi SSAS SQL Server 2005 in quel momento.

  4. Secondo @Billinkc che usa per connettersi ad esso con .NET diretto. Un po 'di scavo è tornato Hyperion Application Builder .NET (Hab.net). Inizialmente questa sembrava essere una soluzione promettente, ma si scopre che il prodotto è stato sospeso con la versione 11.1.3. @Billinkc ora ha anche fornito un campione di codice, quindi lo proverò e vedrò se funziona.

Oltre a concedere in licenza il prodotto Server Server Star Analytics che è proibitivo in termini di costi (per me), ci sono altre soluzioni là fuori?

È stato utile?

Soluzione

Non avevo sentito parlare di Hab.net ma +1 per averlo trovato. Invece, ho appena avuto un semplice test di connettività che andava in .NET come sotto. L'ho modificato un po 'per lavorare con le cose DTS. Ovviamente, dovrai definire le colonne e i tipi del buffer, ma speriamo che questo ti faccia attraverso la roba di Hyperion.

Per accedere alla classe Microsoft.AnalySisservices.AdomDClient, aggiungi un riferimento ad Adomd.net e salva tutto. Quindi il codice seguente funzionerà correttamente.

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

Altri suggerimenti

Nel caso in cui qualcuno ne abbia bisogno, il modo più semplice e diretto è attraverso gli SSR. Maggiori informazioni qui:https://samtran.me/2017/05/05/interrogating-and-automation-of-essbase-cubes-with-essbase-web-services/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top