MDXを使用してSSASデータベースにクエリを実行し、これをRhino ETLのデータソースとして使用することは可能ですか?ここでは、SSASインスタンスへのOLEDB接続の作成について説明しています。
ありがとう!
.NETアプリケーション内でRhinoETLを使用している場合は、そうです。まず、Microsoft.AnalysisServices.AdomdClient.dllを参照します。次に、RhinoETLのAbstractOperationを実装してデータを抽出します。次に例を示します。
namespace Etl.Operations
{
public class ExtactFromAnalysisServices : AbstractOperation
{
private readonly AdomdConnection _connection;
private readonly string _mdx;
public ExtactFromAnalysisServices(string connectionString, string mdx)
{
_connection = new AdomdConnection(connectionString);
_mdx = mdx;
_connection.Open();
}
public override IEnumerable<Row> Execute(IEnumerable<Row> rows)
{
var command = _connection.CreateCommand();
command.CommandText = _mdx;
using (var reader = command.ExecuteReader())
while (reader.Read())
yield return Row.FromReader(reader);
}
public sealed override void Dispose()
{
_connection.Close();
_connection.Dispose();
base.Dispose();
}
}
}
次のようなプロセスで使用します。
public class Process : EtlProcess
{
protected override void Initialize()
{
Register(new ExtactFromAnalysisServices("connection string", "mdx query"));
Register(new SomeTransform());
Register(new SomeLoad());
}
}
Rhino ETLはわかりませんが、SSASとSSISを使用してこれを行うことができます。
はい、できます:http: //msdn.microsoft.com/en-us/library/ms146862 (v=sql.90).aspx
「クライアントアプリケーションは、Analysis Servicesのインスタンスを実行しているフルスケールサーバーと対話することなく、ローカルキューブに接続し、多次元式(MDX)を使用してクエリを実行できます。」
ただし、rhinoで動作するかどうかはわかりません。