Hyperion Essbase Connection в SSIS - PullRequest
       37

Hyperion Essbase Connection в SSIS

8 голосов
/ 13 января 2012

Как заставить SSIS подключиться к кубу Oracle Hyperion Essbase, чтобы использовать его в качестве источника данных?Поиск в Google вернул следующее:

  1. A аналогичный вопрос был задан о конкретной версии без реального ответа, кроме как "сторонний инструмент может это сделать".

  2. A Соединители Microsoft SSIS вики указывает, что вы можете сделать это через Star Analytics .

  3. Началос SQL Server 2005 с пакетом обновления 2 (SP2) Службы Reporting Services (SSRS) имеют соединение с источником данных.Эта функция продукта, похоже, не переводилась ни на какие объекты для SSIS.Один блоггер предположил, что это можно было сделать как соглашение quid pro quo еще до того, как Oracle приобрела Hyperion, поскольку Hyperion в то время начала поддерживать подключение к кубам SSAS SQL Server 2005.

  4. Согласно @billinkc он использует для подключения к нему с прямым .NET.Небольшое копание вернуло Hyperion Application Builder .NET (HAB.NET).Сначала это казалось многообещающим решением, но оказалось, что продукт был прекращен с выпуском 11.1.3.@billinkc также предоставил пример кода, поэтому я протестирую его и посмотрю, работает ли он.

Помимо лицензирования серверного продукта Star Analytics, который является непомерно дорогим (для меня),есть ли другие решения?

Ответы [ 2 ]

6 голосов
/ 13 января 2012

Я не слышал о HAB.NET, но +1 за то, что нашел это.Вместо этого у меня был простой тест подключения в .NET, как показано ниже.Я немного изменил его для работы с DTS.Очевидно, вам нужно определить столбцы и типы буфера, но, надеюсь, это поможет вам разобраться с гиперионами.

Чтобы получить доступ к классу Microsoft.AnalysisServices.AdomdClient, добавьте ссылку на ADOMD.NET и сохранить все.Тогда приведенный ниже код будет работать правильно.

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;
        }
    }
}
0 голосов
/ 12 октября 2018

Если кому-то это нужно, самый простой и прямой путь - через SSRS. Больше информации здесь: https://samtran.me/2017/05/05/interrogating-and-automation-of-essbase-cubes-with-essbase-web-services/

...