2012-07-12 64 views
0

是否可以使用MDX查詢SSAS數據庫並將其用作Rhino ETL的數據源?我正在討論在這裏創建一個到SSAS實例的OLE DB連接。SSAS與Rhino ETL?

謝謝!

回答

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()); 
    } 
} 
0

我不知道犀牛ETL,但你可以用SSAS和SSIS來做到這一點。