2012-01-12 10 views
8

SSISをOracle Hyperion Essbaseキューブに接続してデータソースとして使用するにはどうすればよいですか?これは、次の返さグーグル:「サードパーティ製のツールはそれを行うことができます」similar questionが以外には本当の答えを持つ特定のバージョンについて尋ねたSSISのHyperion Essbase接続

  1. microsoft SSIS connectors wikiは、Star Analyticsでこれを行うことができることを示しています。

  2. SQL Server 2005 SP2以降、Reporting Services(SSRS)にはデータソース接続があります。この製品機能は、SSISのどのオブジェクトにも変換されていないようです。 1人のブロガーは、Hyperionがその時点でSQL Server 2005 SSASキューブへの接続をサポートし始めたので、これがquid proquoアレンジとして返された可能性があることを示唆しました。

  3. @billinkcによれば、彼はストレート.NETで接続するために使用します。ちょっと掘り起こしてHyperion Application Builder .NET(HAB.NET)を返しました。最初はこれが有望な解決策であるように見えましたが、製品が11.1.3リリースで中止されたことが判明しました。 @billinkcもコードサンプルを提供していますので、テストしてこのコードが動作するかどうかを確認します。

(私にとっては)コストがかかりますが、Star Analytics Server製品のライセンス供与以外の方法はありますか?

+1

私はもはやEssbaseのインストールへのアクセスを持っていないが、それはSSISで同じように動作しない理由を私は見ていないので、私はSSRS&ストレート.NETでそれに接続することができました。あなたのデータソースは、それをプルダウンするためにはスクリプトコンポーネントでなければならないかもしれませんが、うまくいくはずです – billinkc

+0

それは励みになります。私はSSRSがそれに接続できることは知っていますが、この接続機能はSSISに移植されていないようです。私は、誰かが.net経由でデータを接続したり、エクスポートしたりするためのスクリプトを公開しているかどうか調べます。 –

答えて

6

私は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

これは私の問題を端から端まで解決しました。どうもありがとうございました! –

関連する問題