我有一個要求,我需要從SSAS多維數據集檢索數據並將其發送到OData。如何做到這一點?任何幫助將不勝感激。任何指向示例代碼的指針也將不勝感激。使用WCF數據服務訪問SSAS多維數據集
感謝和問候,
Venkatesh。 S
我有一個要求,我需要從SSAS多維數據集檢索數據並將其發送到OData。如何做到這一點?任何幫助將不勝感激。任何指向示例代碼的指針也將不勝感激。使用WCF數據服務訪問SSAS多維數據集
感謝和問候,
Venkatesh。 S
我假定它是SSAS立方體。不確定這樣做的特定框架。 但是有一個可能的解決方案: 用存儲過程包裝多維數據集(MDX)。 (通過SP從MDX訪問SSAS) 您可以創建WCF數據服務,添加EM併爲EM指定存儲過程。你應該能夠將它們暴露爲oData。
您可以使用ADOMD.Net執行查詢並使用wcf發送結果。以下是我通常使用的課程。
class MDXQueryEngine : IMDXQueryEngine
{
private readonly string _serverName;
private readonly string _initalCatalog;
public MDXQueryEngine(string serverName, string initalCatalog)
{
_serverName = serverName;
_initalCatalog = initalCatalog;
}
public TResult Execute<TResult>(MDXQuery query, Func<IDataReader, TResult> work)
{
var connectionString = string.Format("Data Source={0}; Initial Catalog={1}", _serverName, _initalCatalog);
TResult result;
using (var conn = new AdomdConnection(connectionString))
{
conn.Open();
using(var cmd = conn.CreateCommand())
{
cmd.CommandText = query.Expression;
using (var reader = cmd.ExecuteReader())
{
result = work(reader);
}
}
}
return result;
}
}
嗨,埃裏克,你能否詳細解答你的答案?我是整個MDXQuery世界的新手,最好能提供一個請求執行和填充模型的示例。 –
只需補充一點,理想情況下,Iw應該考慮與EF集成的解決方案。比方說,我有一個模型結構,我定義了一個基於模型的查詢。一個簡單的例子可以做到。 –
您可以使用LINQ和ADO.NET實體框架查詢SSAS多維數據集。 您需要SSAS實體框架提供,以便能夠做到這一點: http://agiledesignllc.com/products
此選項使構建WCF數據服務簡單和瑣碎。
有關如何通過存儲過程訪問MDX的更多信息:可以使用openquery:SELECT * FROM OPENQUERY(linked_server_olap,mdx_query) – Lokeshwer
感謝您的快速響應。我從WCF數據提供者的角度看更多。是否編寫自定義提供程序或反射提供程序以直接獲取底層數據。 – Venkatesh