数据仓库的多维数据分析器设计与实现_第1页
数据仓库的多维数据分析器设计与实现_第2页
数据仓库的多维数据分析器设计与实现_第3页
数据仓库的多维数据分析器设计与实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 41 卷第 6 期厦门大 学学报( 自然科学版)Vol. 41 No. 62002 年 11 月Journal of Xiamen University ( Natural Science)Nov. 2002文章编号: 0438 0479( 2002) 06 0697 04数据仓库的多维数据分析器设计与实现段江娇, 薛永生, 令狐荣珊( 厦门大 学计算机科学系, 福建 厦门 361005)摘要: 实现多维数据分 析是数据仓库系统需要具备的一 个主要 功能, 它接受 用户的 多维数 据查询 请求, 生成多 维数据集, 为建立数据挖掘模型提供基础数据. 本文讨论了基于 Microsoft SQ

2、L Server 2000 的多维数 据分析器的 实现. 简要介绍了多维数据分析的基本原理, 并在 DSO、ADO MD 及 MDX( 多维数据表达式) 等技术的基础上, 构造 了一个多 维数据分析器. 最后, 给出了多维分析器的实现实例.关键词: 数据仓库; OLAP; 多维数据集; 多维分析中图分类号: TP 311. 131联机分析处理 OLAP ( On_Line Analytical Processing) 是数据仓库技术的一个重要组成部分. OLAP 技术是通过 OLAP 服务器, 将数据仓库的数据 抽取和转换为多维数据结构, 以反映用户所能理解的企业的真实的 维 , 然后通过多维

3、分析工具对信息的多个角度、多个侧面, 进行快速、一致和交互的存取, 从而使分析人员、经理和管理人员能够对数据进行深文献标识码: A多维分析对多维 形式组织起来的数据采取切 1终用户能从多个角度、多侧面地观察数据库中的数据. 在进行多维分析时, 分析的目标数据称为事实数据, 如销售量、销售额等. 这些数据日积月累, 数量庞大. 事实数据的属性称为 维 , 如销售的时间、客户、产品、地区等. 它们的内容一般变化不大, 数量也相入的分析和观察 1. 其中, 数据抽取和转换工具将数2据按照一定的要求, 导入到多维数据仓库中, 数据仓库的使用者通过前端访问和分析工具, 对多维数据分析产生的数据集按照一定

4、的方式进行显示输出.而多维数据分析, 则根据前端工具输入的数据查询日 月 年 这三个层次, 地区维可以具有 城市 省地区 三个层次. 在数据仓库中维可以具有不同的粒度级, 例如, 年 对应于高粒度级, 日 对应于低粒度级.请求获取数据, 并生成一定格式的数据集. 3,4: 多维 OLAP上述多维数据分析过程是由多维数据分析器操作而成, 本文着重讨论基于 Microsoft SQL Server 2000的多维数据分 析器的设 计以及基 于 DSO、ADO MD及 MDX( 多维数据表达式) 等技术的实现方法.( MOLAP) 、关系 OLAP ( ROLAP ) 和混合 OLAP ( HOLA

5、P) .本文中所讨论的多维数据分析是基于ROLAP,在 ROLAP 体系结构中, 数据的组织方式分为星形模1多维数据分析的基本原理 1, 5都划分为两类表: 一类是事实( fact) 表, 用来存储事联机分析处理 OLAP 是对数据的一系列交互查询过程, 这些查询过程要求对数据进行多层次、多阶段的分析处理, 在 OLAP 中, 多维数据集( cube) 是分析的基本单位. 一个多维数据集代表了一个特殊的可查询区域, 是由一定数目的维度和度量结合而成的整体存储单位.收稿日期: 2002 05 13作者简介: 段江娇( 1972- ) , 女, 讲 师.实的度量( measure) 值及各个维的码

6、值; 另一类表是维表, 即维 的描述信息, 包括维的层次 及成员类别等. 基于关系数据库的 OLAP 的维表和事实表都是用二维关系表的方式存放的.进行多维数据分析的几个基本步骤如下: 1) 创建一个分析服务数据库, 并指定该数据库的数据源;2) 创建多维数据集, 创建事实表、维度表, 定义度量的数据列, 并根据业务要求, 设定维度的粒度;3) 选择存储方式: MOLAP, ROLAP 或 HOLAP;4) 处理多维数据集, 创建多维数据集的聚合.片、切块、旋转等各种分析动作 , 以求剖析数据, 最对小. 维通常是有层次的 , 例如, 时间维可以具有多维数据集的存储模式有三种型和雪花模型. 星形

7、模型和雪花模型的多维结构! 698 !厦门大学学报( 自然科学版)2002 年本文所描述的多维数据分析器即是实现以上步骤的一个集成器.2基于 SQL Server 2000 的多维数据分析器实现的关键技术2. 1 SQL Server 2000 对多维数据分析开发的支持Microsoft SQL Server 2000 提供了相关的数据仓3应 用 程 序. 多 维 表 达 式 MDX ( Multi dimensionalExpress) 支持对多维数据集的操作. ADO MD 是 ADO的扩 展, 它 允 许 基于 COM 的 应 用 程序 通 过 用 于OLAP 的 OLE DB 接口实现

8、对多维数据源的操作. 包括在 OLAP 数据库中对多维数据集层次结构的只读图 1基本的 DSO 对象模型访问; 查询处理和数据检索功能. DSO( Decision Support Object , 决策支持对象) 提供了对 OLAP 数据库的管理能力. 基本的 DSO 对象模型如图 1 所示.本文所讨论的多维分析器在实现时具体要用到的技术:1) 利用 DSO 对象模型访问分析服务器, 提供有关分析服务器中多维数据库和多维数据集的信息;2) 利用 ADO MD 对象模型对 OLAP 数据库中多维数据集层次结构的只读访问;3) 利用 ADO MD 对象模型对 OLAP 数据库中的多维数据进行查询

9、处理和数据检索, 支持 MDX 语句的执行以及对结果数据集的分析;4) 程序内部动态生成 MDX 查询语句, 对多维Fig. 1 Model for basic DSO己选择分析服务的提供者、分析服务器的位置、以及多维数据库和多维数据集. 同时系统也将本地多维数据集列表显示, 用户可直接选择一个多维数据集作为多维数据分析的数据源.在多维分析模块中, 通过 ADO MD 对象模型和PivotTable Service 提供的服务, 访问多维数据 集. 列表显示出多维数据集的所有维度和度量值. 由用户自己选择数据显示的维度和度量值, 根据用户选择的维度和度量值, 构造 MDX 查询语句进行多维查询

10、分析, 利用 ADO MD 对象模型的 Cellset 对象存储多维分析结果, 最后显示多维数据, 供用户查看数据.数据集中的数据进行查询, 根据用户选择的行维和2. 3创建分析服务数据库列维, 对数据进行多维分析, 并平面化的显示多维分析结果.通过 Visual Basic 开发工具与 SQL Server 密切结合, 可以通过访问其基本的 DSO 对象而实现对 SQLServer 的二次开发.在 Server 对象的 MDStores 集合上调 用 AddNew方法创建分析服务数据库. 语法形式如下:dsoServer.MDStores. AddNew 数据库名调用 DataSources

11、 集 合的 AddNew 方法, 添 加包括连接字符串在内的相关属性, 为分析数据库指定2. 2多维分析器的设计一个新的数据源, 如下:多维分析器的功能结构如图 2 所示. 本系统主要是在分析服务器和数据透视表服务的基础上, 对多维数据集当中的数据进行多维分析. 本系统提供一个由用户自己选择数据源的向导: 可以由用户自Dim dsoDataSrc As DSO. DataSourceSet dsoDataSrc = dsoDb. Datasources. AddNew ( 服务器名+数据库名)DsoDataSrc. ConnectionString = Provider = SQLOLEDB.

12、 1;& Data Source= 服务器名; Initial Catalog= 数据库名; & Integrated Security = SSPI库开发技术 , 使得用户可以根据需要开发自己的第 6 期段江娇等: 数据仓库的多维数据 分析器设计与实现表 2 多维数据集处理常量Tab. 2Process constant of MD set! 699 !常量含义ProcessBuildStructureProcessDefaultProcessFullProcessReaggregate建立 多 维 数 据 集 结 构,但不产生数据多维数据集 已存 在则 刷新数据否则完全处理

13、它从头开始重 新建 立多 维数据集重 新 建 立 所 有 MOLAP分区图 2 多维数据分析器的功能结构Fig. 2 Structure of MD analyzerProcessRefreshDataProcessRefreshDataAndIndex只刷新数据刷新数据并 重新 建立 分2. 4创建分析服务多维数据库区索引在 Database. MDStores 集合上创建多维数据集:创建 一 个 多 维 数 据 集 名: Set dsoCube = dsoDb.3实现范例MDStores. AddNew;设置多 维数 据集 的 数据 源: dsoCube. DataSources.AddN

14、ew dsoDb. DataSources( 数据源名) . Name;指定事实表: dsoCube. SourceTable = 事实表名在多 维数 据 集 中增 加 维 度: dsoCube. Dimensions.AddNew 维度名在多维数据集中创建度量, 首先需要指定度量在源数据库中的位置、类型和大小; 其次, 需要指出度量怎样被聚合. 6分析和显示为例来说明:3. 1 对数据进行多维分析1) 创建一个新的 Cellset 对象, 设置 Cellset 对象的 Activeconnect ion 为一个现有的 ADO MD 对象模型中的 Catalag 对象的 Act iveConn

15、ection 属性Dim cst As New ADOMD. CellsetSet cst. ActiveConnection = CreatGridForm. cat. ActiveConnection2. 5选择存储方式2) 动态构造 MDX 查询语句, 为 Cellset 设置数在 Server 对象的 MDStores 集合上设置 OlapMode属性.dsoServer. MDStores. ( 数 据 库 名) . OlapMode =, 表 1 列出了可选的存储模式:据源属性cst. Source = MDXSource. Text3) 在 Cellset 对象上调用 Open

16、方法, 来执行查询, 进行多维分析表 1 多维数据集的存储模式Tab. 1 The store mode of MD set3. 2cst. open利用 MSHFlexgrid 控件显示多维数据存储模式OlapmodeMolapIndexOlapmodeRolapOlapmodeHybridIndex解 释多维 OLAP关系 OLAP混合 OLAP利 用 MSHFlexgrid 控 件 显 示 多 维 数 据, 由 于ADO MD 模型的 Cellset 对象不能直接作为它的数据源, 所以需要 在程序中将 ADO MD 模型中的 Cellset的维度和多维 分析的结果通过赋值的 方式拷贝到M

17、SHFlexgrid 的相应维度轴上和数据单元中去.2. 6处理多维数据集这个方法对多维数据集处理进行了初始化, 包With MSHFlexGrid1. Cols = cst. Axes( 0) . Positions. Count + CreatGridForm.RowList.L istCount括所有成员或设计聚合的计算. 可以通过向 Process方法指定一个可选参数来选择多维数据集的处理方式. 常见多维数据集处理常量如表 2. Rows = cst. Axes( 1) . Positions. Count + 1 + CreatGridForm. ColumnList. ListCo

18、unt. FixedCols = CreatGridForm. RowList. ListCount下面使用 VisualBasic 编程语言 以数据的多维! 700 !厦门大学学报( 自然科学版)2002 年. FixedRows = CreatGridForm. ColumnList. ListCount# 设置多维数据分析结果显示的列维For m = 0 To CreatGridForm. ColumnList. ListCount - 1End WithNext intRowNext intCol. TextMatrix ( 0, m +. FixedCols ) =CreatGrid

19、Form.ColumnList. List( m)4结束语Next mFor m = 0 To CreatGridForm. ColumnList. ListCount - 1For intCol = 0 To cst. Axes( 0) . Positions. Count - 1.T extM atrix( m + 1, intCol + . FixedCols) = cst. Axes( 0) .Positions( intCol) . Members( m) . CaptionNext intCol一个数据仓库的应用系统必须实现多维数据分析, 因为它接受用户的多维数据查询请求, 生成多

20、维数据集, 为建立数据挖掘模型提供基础数据. 本文讨论了基于 Microsoft SQL Server 2000 的多维数据分析器的实现, 简要介绍了多维数据分析的基本原理,Next m# 设置多维数据分析结果显示的行维并在 DSO、ADO MD 及 MDX( 多维数据表达式) 等技For m = 0 To CreatGridForm. RowList. ListCount - 1术的基础上, 构造了一个多维数据分析器. 本文描述( m).T extM atrix( . FixedRows, m) = CreatGridForm. RowList. ListNext mFor intRow =

21、 0 To cst. Axes( 1) . Positions. Count - 1For m = 0 To CreatGridForm. RowList. ListCount - 1的实现方式能被嵌入到其他的应用程序中, 以实现整个数据仓库应用的集成, 减少非专业用户使用管理工具的复杂性.参考文献:.TextMatrix( intRow + . FixedRows + 1, m) = cst. Axes( 1) . Positions( intRow) . Members( m) . CaptionNext mNext intRowEnd With# 将 ADO MD 中的 Cellset

22、对象存储的多维数据分析结果通过 MSHFlexgrid 平面化显示For intCol = 0 To cst. Axes( 0) . Positions. Count - 1For intRow= 0 To cst. Axes( 1) . Positions. Count- 1With MSHFlexGrid1. Col = intCol + . FixedCols 1 2 3 4 5王 珊. 数据仓库技术与联机分析处理 M . 北京: 科学出版社, 1998.宋擒豹, 杨向荣, 沈钧毅. 数据仓库技术研究 J . 计 算机工程, 2002, 28( 1) : 125- 127. 美 Mike

23、Gunderloy T im Sneath, 张 伟, 宋 霞. SQL Server开发指南 OLAP( 联机 分析 处理) M . 北 京: 电子 工业出版社, 2001.Wo Shun Luk. ADODA: A desktop online data analyzer.Proc. of 7t h International Conference on DASFAA. CA: IEEEComputer Society C . 2001. 134- 141.沈 兆阳. SQL Server 2000 OLAP 解决 方案 数 据仓 库 与Analysis Services M . 北京: 清 华大学出版社, 2001. Row = intRow + . FixedRows + 1.T ext = cst( intCol, in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论