原帖:使用Dundas控件在web应用上展现多维数据集
Posted on 2008-12-21 15:41 aspnetx 阅读(2202) 评论(5) 编辑 收藏 网摘 所属分类: (BI)商业智能摘要
关于如何展现多维数据集是很多从事BI项目的朋友都很关注的问题,在此笔者推荐使用Dundas公司下的OLAP组件。本文主要描述关于Dundas OLAP控件的使用,以及开发的时候需要注意的问题,还有笔者在开发过程中的一些经验。
Dundas OLAP控件简介
Dundas是专门开发商业图表组件的公司,之前的reporting services图表组件很是有名,后来被微软收录到SQLServer 2008的版本中,此外还有很多针对Sharepoint等微软各个平台的产品。前段时间微软发布了.net 3.5下的chart组件,跟Dundas的甚像,其中到底是不是Dundas的笔者目前还不敢妄加猜测,不过给笔者个人的感觉是微软要收购相关的产品来丰富微软自身的产品,这对各位开发人员来说是好事。当然,这只是笔者的一个妄想。
Dundas olap环境搭建
本文使用的开发环境是VS2008,对应的Dundas OLAP控件版本是6.1的VS2008版本,数据库使用的是SQLServer2008,示例数据库和多维数据集使用的是Adventure Works。由于6.1版本需要ADOMD.NET 9,所以需要单独下载。相关资源如下:
SQLServer2008示例数据库:
http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx
Dundas OLAP for ASP.NET下载地址(需要注册):
http://dundas.com/Downloads/downloadRequest.aspx?SKU=DOWC6.1VS8EVAL
ADOMD.NET9的下载地址请参考我之前写的关于此的介绍(文章底部):
http://www.cnblogs.com/aspnetx/archive/2007/05/22/755793.html
需要说明一下,当安装完SQLServer2008之后自带的ADOMD.NET版本是10,所以9版本需要单独安装一下。也许Dundas会在下一个版本考虑10版本吧。但经笔者目前使用来看还未发现这两个版本有何区别。
假设你现在已经安装好了VS2008和SQLServer2008,那么你就可以安装Dundas OLAP控件了,其本身就是一个setup安装包,在此不作太多描述,根据注册信息下一步就可以了。SQLServer2008示例数据库的安装在此也不作太多介绍,值得一提的是Analysis Serivces项目需要找到在安装后的目录下找到项目文件手动部署,安装目录通常位于:
C:\Program Files\Microsoft SQL Server\100\Tools\Samples\AdventureWorks 2008 Analysis Services Project\enterprise
部署跟SQLServer2005可能略有差异,需要根据具体情况具体分析,所以有问题的朋友可以跟作者联系。当你有自己的多维数据集的时候可以直接跨过这步,直接用自己的多维数据集就可以了。
上述环境准备好之后,就可以进行简单的OLAP WEB开发了。
添加Dundas OLAP控件到项目中
Dundas安装完毕后,打开VS2008,新建一个Web Applicationx项目,当然Web site亦可,但这里我们选择Web Application。
正常情况下在左面的工具栏中就可以看到Dundas OLAP控件了,如下图:
大多数情况下这些控件可能不会出现在工具栏中,需要手动的去添加。添加的过程可能比较痛苦,其实这里只要单击一下命名空间控件栏,让它根据头字母排序,然后找到所有Dundas命名控件打头的控件都添加进来就可以了。如下图:
此外,这里还需要添加相关Dundas OLAP的相关引用,否则项目会编译不过去,提示缺少组件。添加的方法也很简单,只要在添加引用对话框里把所有Dundas打头的都添加进来就可以了,如下图:
到此,准备工作完毕。
Dundas olap的简单应用
我们用最快速的方法建立一个标准的OLAP WEB应用,这里我们主要应用AdomdNetDataProvider控件和OlapClient控件。推拽两个控件到页面中 ,如下图所示:
AdomdNetDataProvider控件如同多维数据集数据源,里面需要指定连接字符串,默认的连接字符串如下(是不是跟SQLServer数据引擎的有点像呢?):
Data Source=localhost; Catalog=Adventure Works DW;
笔者分析这个是针对SQLServer2005版本的,针对2008版本我们刚才提到的示例数据库,其部署后是如下的名称:
所以我们需要改成:
Data Source=localhost; Catalog=Adventure Works DW 2008;
如果你用的是自己的多维数据集的话,把Catalog后面改成自己的多维数据集名就可以了。
OlapClient从字面上就可以看出是一个OLAP客户端,里面包含了透视选择,维度度量值选择等功能,并且可以在Grid和Chart来回切换。里面有一个属性这里我们需要设置,DataProviderID,也就是需要为它指定一个数据源。单击旁边的向下三角号选择一个就可以了,其会自动检测到页面上已经存在的AdomdNetDataProvider实例。
设置好以上两个控件的属性之后,我们就可以在WEB上浏览多维数据集了,如下图:
默认它会给我们自动设置好一个维度和一个度量值,这可能不是我们满意的,我们可以拖拽其它维度和度量值上来,并且切换到Grid视图,同时也可以切换不同的透视,比如:
我们看到这个控件里的Categories有点相当于MDX中的on rows,Series相当于on columns,Filter/Silcer相当于where部分。
笔者之所以之前建议大家用微软官方的示例多维数据集,主要就是因为其中基本包含了微软多维数据集下的所有元素和功能,借住它我们可以简介的评测一个第三方展现控件的功能
至此,我们的多维数据集就以web的方式呈现在了我们面前。
常见问题:
在VS 里可以正常浏览但是发布到IIS上之后无法浏览多维数据集。这里是由于安全设置的原因,需要根据自己的情况具体配置。但如果你是在自己机器上做试验的话,你可以尝试如下两种快捷的方法:
1- 为多维数据集添加Everyone最高权限
2- 在IIS里把asp.net应用模拟成administrator身份
以上两种方法仅限在开发测试环境当中使用,切勿在生产环境中使用,生产环境中请分配适当的权限。
控件总评
Dundas支持Drill up和Drill down,但是不支持Drillthrought to detail。笔者的理解这不一定是Dundas的缺陷,因为根据数据量的不同以及聚合复杂度,detail数据可能是源于多维数据集本身的,也有可能是到数据仓库的一条SQL查询,需要根据自己的需求而定,所以Dundas没有添加进来这个功能也是可以理解的。BI应用本来就是很复杂没有统一标准的应用,所以什么样的控件是否适合目前的项目,还需要自己做充分的评估。
Dundas OLAP是一套纯asp.net server control,所以运行起来慢是在所难免的,甚至会出现卡死的情况,笔者分析过瓶颈,在analysis services这一层一个MDX的响应速度通常都在1000毫秒之内,但是到前面render出来就费尽的很。在此笔者建议还是从自己的多维数据集结构的改善上下手,因为你的多维数据集是什么样的它展现出来就是什么样的,所以在设计的时候也应该考虑到这个问题,否则换成什么展现控件恐怕都要废掉,在Management studio中也是。
为了多维数据集能被很好的展现出来,请参考aspnetx的建议,笔者做了一些笔记:
http://www.cnblogs.com/aspnetx/archive/2008/11/22/1338968.html
总结:
本文描述了关于Dundas OLAP控件的使用,以及开发的时候需要注意的问题,还有笔者在开发过程中的一些经验。之前网上求助相关中文教程的朋友很多,但是资源很少,希望通过此文,能帮助更多的人使用这套控件,并且能更好的利用多维数据集。
aspnetx的广告:
笔者业余时间在做一个利用silverlight实现BI项目展现部分的项目,目前已发布到codeplex下,有兴趣的朋友可以点击这里访问:
http://www.codeplex.com/silverlight4bi
用RIA来实现BI笔者认为会有相当大的优势,而且silverlight比较方便上手,相对来说跟微软的产品和技术体系整合紧密,所以才萌生这样一个想法。目前只局限在silverlight for cube这块,正有想法实现silverlight for datamining,希望借助此能将BI更好地展现出来。