Соединение Hyperion Essbase в SSIS

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

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

  2. A Microsoft SSIS разъемы wiki означает, что вы можете сделать это через Звезда Аналитика.

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

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

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

1 ответов


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

для доступа к 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;
        }
    }
}