ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:19.12KB ,
资源ID:3856778      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3856778.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ADO MD的OLAP扩展应用实现.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于ADO MD的OLAP扩展应用实现.docx

1、基于ADO MD的OLAP扩展应用实现基于ADO/MD的OLAP扩展应用实现摘要:简要叙述了OLAP技术,分析了ADO/MD运行机理,并通过一个实例给出了基于ADO/MD实现OLAP扩展应用的方法步骤,为丰富OLAP应用提供了新的思路。关键词:联机分析处理;多维数据查询;多维数据对象模型0引言数据仓库技术的迅猛发展,使得数据支持决策成为可能。众多的数据库厂商,比如Microsoft、Oracle、IBM、Sysbase等都提出了自己的数据仓库解决方案。其中Microsoft公司的Analysis Services凭借其稳定的性能、相对低廉的价格和操作的简便性占据了一定的市场份额。OLAP(On

2、Line Analysis Process,联机分析处理)是Analysis Services提供的重要功能之一,它可以帮助用户从不同侧面分析数据,为决策提供支持。然而,Analysis Services的客户端工具虽然能够对分析结果进行简单的表格展现,但无论是数据展现的功能,还是展现的界面难以与各企业自身的业务信息系统实现集成,难以满足用户个性的需求。庆幸的是Microsoft提供了操作多维数据集的接口ADO/MD(ActiveX Data Objects/ Multi-dimensional,ActiveX数据对象/多维对象),通过这个接口可以实现客户端与OLAP服务器的无缝连接,实现多维

3、分析功能与业务信息系统其它功能的集成。本文基于ADO/MD技术,实现了OLAP客户端扩展应用的开发。1OLAP技术OLAP是联机分析处理,也有人称为在线分析处理,它通常基于数据仓库,通过建立面向主题的多维数据集,最终提供给用户一个直观数据展现工具,达到方便用户从多个角度分析数据的目的。OLAP通过引入维、维分层、维属性、度量等概念,将数据在概念上视为一个数据立方体(也可称为多维数据集)。通常,多维数据模型围绕中心主题组织,以“维表-事实表”结构形式体现,主题用事实表表示,而每个维都有一个表与之相关联,称为维表,它进一步描述维。事实表是用于记录度量信息的关系表,维表是用于记录维度的关系表,多维数

4、据立方体中每个坐标轴上的值,各记录在一个维表中,这样,一个n维的数据立方体,就有n张维表。进行多维数据模型构建时,通常将数据组织成多维,每维包含由概念分层定义的多个抽象层,这种组织结构为人们从不同角度观察分析数据提供了灵活性。多维数据分析通常包括切片、切块、上卷、下钻和旋转等操作。(1)切片:切片操作对给定立方体的一个维进行选择,得到一个子立方体。(2)切块:切块操作通过对两个或多个维进行选择,得到一个子立方体。(3)上卷:上卷(上钻)操作通过沿一个维的概念分层向上攀升或者通过维归约,对数据立方体进行聚集。(4)下钻:下钻是上卷的逆操作,它由不太详细的数据到更详细的数据。下钻可以通过沿维的概念

5、分层向下或引入附加的维来实现。2ADO/MD运行机理ADO/MD是微软Analysis Services提供给第三方访问服务端多维数据集的接口,通过ADO/MD接口可以方便快捷地编写OLAP应用程序。ADO/MD是传统ADO对象模型的扩展,能够更好地支持多维数据模型,它不仅功能强大,而且应用简单。它主要提供了两方面的功能,一是能够对OLAP数据库中多维数据集层次结构信息进行访问;二是支持通过MDX(Multi-dimensional Expressions,多维表达式)语句获取结果数据集。为了能够描述多维数据集,ADO/MD的模型结构如图 1所示。它包括两个分支,一个分支用来存储数据立方体元数

6、据;第二个分支用来获取由OLAP立方查询产生的存储在数据集中的数据。ADO/MD的Catalog(目录)对象用来获得元数据,它可以包含一个或多个CubeDef(立方体定义),任何在这个集合中的元素都是一个CubeDef对象。每个CubeDef对象拥有一个Dimensions(维)集合,里面包含了所有的Dimension,维的数据是有分级结构的。相应地,Dimension对象包括 Hierarchies(层次)集合,这个集合里面包含了全部的Hierarchy对象;维的分级结构可以包括一个或多个级别,因此 Hierarchy对象还包括Levels(级别)集合,每个Level对象还可以包括一个或多个

7、Members(成员)对象。ADO/MD对象模型的另一个分支就是CellSet(单元集)对象可以用来获得数据立方体的数据透视表。它通过多维表达式(MDX)来查询相关数据。MDX在语法上与SQL十分相似,只不过MDX可能更简单一些,它基本上只支持几个操作,比如SELECT等。每个MDX查询都可以简化成类似的结构:SELECT , FROM WHERE 3OLAP扩展应用3.1服务端多维数据集的创建要进行多维分析处理,首先需要在服务端建立多维数据集。建立多维数据集就是要根据业务需要建立以主题为中心的事实表,并围绕主题建立以数据分类为基础的维度,维度能反映数据组织的分类和层次结构,用户将基于维度中的

8、分类和层次进行分析。在建立多维数据集时,还需要确定度量值,度量值通常是事实表中数值类型的列,它是数据聚合和分析的数值。维度和度量值就组成了一个多维数据集。确定好维度和度量值后,还需要创建数据的物理存储结构。在考虑多维数据集存储问题时会涉及到数据聚合的问题,理想情况下,事先将各维度层次上的度量值计算好,以便分析服务可以随时接受分析客户端的请求响应,而不是在收到请求后才进行数据聚合计算,这样可以提高服务效率和用户体验。但这种方式也存在缺点:一是要占用大量的存储空间来存储聚合的数据;二是聚合的数据源是聚合以前的数据,数据的时效性相对要差一些。因此,实际方案要根据需要进行取舍。Analysis Ser

9、vices提供了3种OLAP存储方式,分别是MOLAP:“M”代表多维(Multidimensional),即以多维方式进行存储,也就是聚合数据与源数据是独立存储的,这种存储方式响应速度最快,存储空间要求也最大;ROLAP:“R”代表关系(Relational),即关系OLAP,将聚合数据存储于源数据库中,这种存储方式响应速度最慢,无论是否聚合,都需要访问源数据库;还有一种是HOLAP:“H”代表混合(Hybrid),即混合OLAP,它结合了前两种方式的优点,HOLAP数据库存储了聚合的数据,而把单元级别的数据保留在源数据库中,这样当检索聚合数据时,响应速度与MOLAP一样,当检索单元级别的数

10、据则需要访问源数据库,响应速度与ROLAP一样。3.2客户端数据展现功能开发客户端的数据展现是在Analysis Services服务引擎的支持下,以表格和图表的方式展现数据分析的结果,并提供与用户交互的功能。OLAP客户端程序的开发过程与传统数据库应用系统的开发过程是一致的,总的步骤包括三步:连接数据库;获取数据;处理展现数据。所不同的是这些步骤都是在ADO/MD接口模型的支持下完成。下面简要介绍客户端的开发过程:(1)连接OLAP服务器。利用ADO/MD接口模型中的TCatalog类可以实现与OLAP服务器的连接,连接字符串必须包括OLE DB Provider名字、计算机名和数据库名,示

11、意代码如下:Procedure SetConnection();var DS:string;beginDS :=Provider=MSOLAP.2; Data Source=localhost;Initial Catalog=FoodMart 2000;Catalog1:=CoCatalog.Create;Catalog1._Set_ActiveConnection(OleVariant(DS);end;(2)获取多维数据集信息。正确连接到OLAP服务器后,就可以获取服务器上的所有多维数据集(数据立方体)、每一个数据集的维度、级别、成员等信息。遍历多维数据集并获得对应的名字:procedure

12、 GetCubes();var i:integer;CubeDef1,defs:Variant;beginDefs := Catalog1.CubeDefs;for i :=0to Defs.Count-1 dobeginCubeDef1 := Defs.itemi;CubeCombox.Items.Add(CubeDef1.Name); /数据集的名称end;end;遍历多维数据集的维并获得它们的名字:procedure GetDimens(CubeDef:varaint);var Dimensions,Dimension,Levels,Level1,Members,Member1:Vari

13、ant;i,j:integer;beginDimensions :=CubeDef.Dimensions;/数据集的维度集合for i :=0 to Dimensions.count-1 dobeginDimension :=Dimensions.itemi;if Dimension.Name=Measures then /是度量值的情况beginLevels :=Dimension.Hierarchies0.Levels;Level1 :=Levels.item0;Members :=Level1.Members ;for j := 0 to Level1.Members.Count-1 d

14、obeginMember1 := Members.itemJ;MeasureCheckListBox.Items.Add(Member1.Name);end;end else /是维度的情况DimensionList. Items.add(Dimension.Name);end;end;遍历维度的级别并获得它们的成员:procedure GetDimensionMember(Dimension:varaint);var Levels,Level1,Members,Member1:Variant;i,j:integer;pnode:TTreeNode;beginLevels :=Dimensio

15、n1.Hierarchies0.Levels;/维度的级别集合Level1 := Levels.item0 ;Members :=Level1.Members;/级别的成员集合for i :=0 to Members.Count-1 dobeginMember1 := Members.itemi;displayMember(MemberTreeView,nil, Member1);/显示下级成员end;end;procedure displayMember(tv:TTreeView;Node:TTreeNode;member:Variant);/显示下级成员var i,j:integer;pn

16、ode:TTreeNode;member1:Variant;beginpnode:=tv.Items.AddChild(Node, Member.Name);for i:=0 to member.Children.count-1 dobeginmember1:=member.Children.itemi;displayMember(tv,pnode,member1);end;end;(3)展现分析结果。多维数据集结构信息获取以后,就要根据用户的操作,利用MDX查询语句获取聚合数据。比如,从多维数据集Sales中查询Store维度,以及Unit Sales和Store Cost两个度量值的数据,

17、其MDX语句如下:Select Unit Sales,Store Cost ON COLUMNS,Store.All Stores.children ON ROWS from Sales获取聚合数据以后,就可以根据用户需要以表格、图形等多种方式进行展现,这里不再赘述。示例代码的界面如图2所示。4结语通过ADO/MX接口,可以实现 OLAP应用的扩展,这种扩展不仅可以丰富OLAP的应用,更为OLAP与其它应用系统的集成提供了方便。本文从理论与实践的角度给出了OLAP扩展应用的方法步骤,为其工程化应用奠定了基础。参考文献参考文献:1叶得学,韩如冰.浅谈数据仓库与OLAP技术J.甘肃科技纵横,2009(2).2叶德谦,孙泽林.使用ADOMD开发OLAP应用程序J.电脑与信息技术,2001(5).

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1