我有兴趣了解一些不同的方法,用于从Analysis Services检索数据,在代码中的对象中使用,或者用于最终用户报告。
我过去曾使用过两种不同的方法,一种是使用ADOMD提取结果并将这些方法放入数据集中,另一种是使用SQL OPENQUERY连接到SSAS服务器以获取结果作为SQL存储过程结果集。这两者都有优点和缺点。
多年来我在这一行上看到了各种各样的问题,请原谅我的任何重复,但是有什么其他方法可以将SSAS数据转换成其他人的代码可以使用的格式?
我已经考虑过基于HTTP的SSAS的XML结果集,然后是Linq到XML - 任何人都有这方面的经验吗?
理想情况下,我想要一个带有类型列的数据集,或者带有属性的对象,但我对一般方法比代码示例更感兴趣。除SSRS /其他仪表板控件外,您如何从SSAS获取数据?
答案 0 :(得分:8)
我知道MS应该支持XML / A(XML for Analysis)。我即将发布一个ajax库来处理来自网页的XML / A请求。
虽然我目前专注于Pentaho的Mondrian,但它应该也适用于MS SQL XML / A.如果您有兴趣,我将在1月13日对其进行演示。(请参阅:http://wiki.pentaho.com/display/COM/January+13,+2010+-+Roland+Bouman+-+OLAP+and+Analysis+for+web+applications+using+XMLA)我将在那时发布我的代码(可能是LGPL许可证)
我很乐意从使用其他XML / A服务器的人那里获得反馈,所以如果你感兴趣的话,在这方面一起工作会很棒。
项目现在可在http://code.google.com/p/xmla4js/获得。有API文档,代码示例和构建脚本。它是LGPL,因此您可以在应用程序中自由使用它,即使是出于商业目的。许可证确实要求您作为LGPL释放对库本身的任何修改(但这不会影响使用该库的应用程序)
项目no位于https://github.com/rpbouman/xmla4js的github上 它适用于浏览器以及nodejs。
答案 1 :(得分:4)
我自己从未使用它,因为我们只使用ADOMD和Excel连接到SSAS,但在某些时候我们考虑使用HTTP和XML。由于缩短了开发时间表,我们最终选择了ADOMD路由,但我想这是允许在.Net世界之外访问SSAS的另一种选择。
这是我在原型设计时发现有用的链接:Configuring HTTP Access to SQL Server 2008 Analysis Services on Microsoft Windows Server 2008
答案 2 :(得分:3)
XMLA是“高功率”方法 - 但我不知道真正暴露XMLA全部功能的工具包或库;我想你会自己制作它。对于我已完成的项目,这太过分了。
相反,我使用ADOMD.NET在代码中检索结果;特别是CellSet类相当丰富。对于最终用户分析(切片和骰子),我经常使用Excel Pivot Charts(非常棒!);有时我也使用Visio Pivot Diagrams。对于固定报告,Reporting Services可以直接访问SSAS,甚至还有自己的查询构建器。
顺便说一下,如果有帮助的话,我的书中有一章关于将SSAS与网站集成,作为卸载SQL Server的一种方式:Ultra-Fast ASP.NET。我的代码示例使用ADOMD;我还介绍了构建一个简单的多维数据集,使用SSIS配置自动更新,使用主动缓存,构建简单的MDX查询等。答案 3 :(得分:2)
另一种方法是使用MSOLAP OLE DB提供程序。我们的代码目前正在使用此方法。
答案 4 :(得分:2)
将SSAS OLAP多维数据集中的数据导入.NET的另一种方式(我想说最简单的方法)是使用LINQ + ADO.NET Entity Framework + SSAS Entity Framework Provider。
(我为开发SSAS实体框架提供商的公司工作)。