我有一个要求,我需要从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