是否可以使用MDX查询SSAS数据库并将其用作Rhino ETL的数据源?我在谈论在这里建立一个到SSAS实例的OLE DB连接。
谢谢!
答案 0 :(得分:3)
如果您在.NET应用程序中使用Rhino ETL,那么是的。首先,参考Microsoft.AnalysisServices.AdomdClient.dll。然后,实现Rhino ETL的 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());
}
}
答案 1 :(得分:0)
我不知道Rhino ETL,但你可以用SSAS和SSIS来做到这一点。
答案 2 :(得分:0)
是的,你可以:http://msdn.microsoft.com/en-us/library/ms146862(v=sql.90).aspx
“客户端应用程序可以连接到本地多维数据集并执行查询 使用多维表达式(MDX)而不与...进行交互 运行Analysis Services实例的完整服务器。“
不确定它是否适用于rhino。