質問

SSISにOracle Hyperion Essbaseキューブに接続してデータソースとして使用するにはどうすればよいですか?これをグーグルでグーグルで返しました:

  1. a 同様の質問 「サードパーティのツールがそれを行うことができる」以外の本当の答えのない特定のバージョンについて尋ねられました。

  2. a Microsoft SSISコネクタwiki これを介して行うことができることを示します 星分析.

  3. SQL Server 2005 SP2から始まり、 レポートサービス (SSRS)データソース接続があります。この製品機能は、SSIのオブジェクトに翻訳されていないようです。あるブロガーは、これが quid pro quo Hyperionがその時点でSQL Server 2005 SSASキューブへの接続をサポートし始めて以来、OracleがHyperionを購入する前にアレンジメントしました。

  4. @billinkcに従って、彼はストレート.NETで接続するために使用します。少し掘り返されました Hyperionアプリケーションビルダー.NET (hab.net)。最初はこれは有望なソリューションであるように見えましたが、製品は11.1.3リリースで中止されたことがわかりました。 @billinkcは今もコードサンプルを提供しているので、テストしてこれが機能するかどうかを確認します。

(私にとって)コストがかかるコストであるStar Analytics Server製品のライセンスを除いて、他のソリューションはありますか?

役に立ちましたか?

解決

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/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top