首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS中的Hyperion Essbase连接

SSIS中的Hyperion Essbase连接
EN

Stack Overflow用户
提问于 2012-01-12 21:40:56
回答 2查看 6.3K关注 0票数 8

如何使SSIS连接到Oracle Hyperion Essbase多维数据集以将其用作数据源?在谷歌上搜索,返回如下信息:

  1. 一个相似问题被问及一个特定的版本,除了“第三方工具可以做到这一点”之外,没有其他真正的答案。
  2. microsoft连接器wiki表示您可以通过星分析完成这一任务。
  3. 从Server 2005 SP2开始,报告服务 (SSRS)具有数据源连接。此产品特性似乎没有转换为SSIS的任何对象。一位博主表示,这可能是在甲骨文收购Hyperion之前的一项交换安排,因为当时Hyperion开始支持连接到SQLServer2005SSAS数据集。
  4. 按照@billinkc的说法,他用直的.NET连接它,然后稍微挖掘一下,返回了Hyperion应用程序生成器.NET (HAB.NET)。起初,这似乎是一种很有前途的解决方案,但结果是该产品在11.1.3版本中停产。@billinkc现在还提供了一个代码示例,所以我将测试它,看看它是否有效。

除了授权星光分析服务器产品,这是昂贵的(对我来说),有任何其他解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-13 03:48:04

我没有听说过HAB.NET,但是我听说了+1。相反,我只是在.NET中进行了一个非常简单的连接测试,如下所示。我对它进行了一些修改,以处理DTS的内容。显然,您需要定义缓冲列和类型,但希望这可以帮助您完成hyperion的内容。

为了访问Microsoft.AnalysisServices.AdomdClient类,添加一个对ADOMD.NET的引用并保存所有。然后,下面的代码将正常工作。

代码语言:javascript
复制
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;
        }
    }
}
票数 6
EN

Stack Overflow用户

发布于 2018-10-11 21:53:07

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8842753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档