.net - SSIS 中的 Hyperion Essbase 连接

标签 .net oracle ssis hyperion essbase

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

  • similar question被问及特定版本,除了“第三方工具可以做到”之外没有真正的答案。
  • microsoft SSIS connectors wiki表示您可以通过 Star Analytics 执行此操作.
  • 从 SQL Server 2005 SP2 开始,Reporting Services (SSRS) 具有数据源连接。此产品功能似乎没有转换为 SSIS 的任何对象。一位博主表示,这可能是在 Oracle 购买 Hyperion 之前作为交换条件完成的,因为 Hyperion 那时开始支持连接到 SQL Server 2005 SSAS 多维数据集。
  • 根据@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;
            }
        }
    }
    

    关于.net - SSIS 中的 Hyperion Essbase 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842753/

    相关文章:

    web-services - 为 Web 服务任务创建复杂类型变量

    ssis - 由 SQL Server 代理运行时 Analysis Services 处理任务失败

    .net - 无法加载文件或程序集 microsoft.sqlserver.sqlclrprovider 13.100.0.0

    asp.net - 如何从 Asp.Net 那样的堆栈跟踪中获取 "Source Error"?

    c# - 从 C++ 使用 COM Interop 对象

    java - Hibernate 多表批量操作总是尝试创建临时表

    java - HikariDataSource.getConnection() 在低流量时缓慢,在大流量时快速

    sql-server - 如何在 Integration Services 中的执行 Sql 任务中引发错误?

    c# - 使用 PLINQ 对线程数的内存使用限制

    SQL:如何查找 varchar 列的内容是否为数字?