SSIS中的Hyperion Essbase连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS中的Hyperion Essbase连接相关的知识,希望对你有一定的参考价值。

如何让SSIS连接到Oracle Hyperion Essbase多维数据集以将其用作数据源?谷歌搜索返回以下内容:

  1. similar question被问及一个特定的版本没有真正的答案,除了“第三方工具可以做到”。
  2. 一个microsoft SSIS connectors wiki表明你可以通过Star Analytics做到这一点。
  3. 从SQL Server 2005 SP2开始,Reporting Services(SSRS)具有数据源连接。此产品功能似乎没有转换为SSIS的任何对象。一位博主建议,在Hyperion开始支持连接到SQL Server 2005 SSAS多维数据集之前,这可能是在Oracle收购Hyperion之前作为一项交换安排。
  4. 根据@billinkc,他使用直接.NET连接到它。一点挖掘返回Hyperion Application Builder .NET(HAB.NET)。起初,这似乎是一个很有前景的解决方案,但事实证明该产品已经停止使用11.1.3版本。 @billinkc现在也提供了一个代码示例,所以我将测试它,看看它是否有效。

除了许可成本过高的Star Analytics服务器产品(对我而言),还有其他解决方案吗?

答案

我没有听说过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;
        }
    }
}
另一答案

如果有人需要它,最简单,最直接的方法是通过SSRS。更多信息:https://samtran.me/2017/05/05/interrogating-and-automation-of-essbase-cubes-with-essbase-web-services/

以上是关于SSIS中的Hyperion Essbase连接的主要内容,如果未能解决你的问题,请参考以下文章

oracle essbase 能连接关系数据库吗

每晚数据库还原 - SSIS 包 - SQL Server 2005

参与构建中国银行数据仓库的一点感想

SSIS 包动态连接中的异常处理

为 Salesforce 动态决定 SSIS 连接器中的列

苹果电脑怎么安装hyperion版本