第4章

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "第4章"

Transcription

1 第四章 OLAP 技术

2 本章学习目标 : (1) 通过 OLAP 技术概念介绍了解 OLAP 的发展和特点 (2) 通过多维分析学习掌握多维的基本概念 (4) 通过 OLAP 的实施掌握 OLAP 实施方法 (5) 通过多维 OLAP 与关系 OLAP 的学习掌握多维 OLAP 与关系 OLAP 的概念 (6) 通过 OLAP 技术评价学习掌握对 OLAP 技术的评价

3 目录 4.1 OLAP 技术概念 4.2 OLAP 与多维分析 4.3 OLAP 的实施 4.4 多维 OLAP 与关系 OLAP 4.5 OLAP 技术评价

4 4.1 OLAP 技术概念

5 OLAP: 在线分析处理或联机分析处理, 是应用广泛的数据仓库使用技术 OLAP 两个特点 在线性 (On_Line): 表现为对用户请求的快速响应和交互式操作, 它的实现是由客户机 / 服务器体系结构完成的 ; 多维分析 (Multi_Analysis)

6 4.1.1 OLAP 的发展 针对特定问题的联机数据查询和分析 对原始数据按照用户的观点进行转换处理, 使数据能够反映用户眼中问题某一真实方面 ( 维 ) 可以对数据进行快速 稳定 一致和交互式的存取 允许用户对这些数据按照需要进行深入的观察

7 4.1.2 OLAP 的特性 快速性 系统能在数秒内对用户的多数分析要求做出反应 可分析性 用户无需编程就可以定义新的专门计算, 将其作为分析的一部分, 并以用户所希望的方式给出报告 多维性 提供对数据分析的多维视图和分析 信息性 能及时获得信息, 并且管理大容量信息

8 4.2 OLAP 与多维分析

9 4.2.1 多维基本概念 维 维的层次 维成员 多维数据集 数据单元 多维数据集的度量值和聚集 1. 维 用户进行决策分析的角度或决策分析出发点 例如 : 从供应商 地点 渠道 事件发生的时间角度分析决策问题 供应商 地点 渠道 事件发生的时间就是维

10 4.2.1 多维基本概念 2. 维层次 销售地区 华东 华中 西南 上海 江苏 湖北 河南 云南 四川

11 4.2.1 多维基本概念 2. 维层次 数据仓库中的维一般具有水平层次和垂直层次 水平层次 : 由维度层次中能够相同级别的字段值构成 垂直层次 : 由维度层次结构中具有不同级别的字段值构成 数据的上卷和下钻 : 上卷 : 用户在数据仓库的应用中, 从较低层次的数据开始逐步将数据按照不同的层次进行概括处理 下钻 : 从数据仓库中的高层数据开始逐步向低层数据探索, 了解组成概括数据的具体细节

12 4.2.1 多维基本概念 3. 多维数据集 销售地区 产品 服装切片 北京 上海 江苏 电器 化妆品 玩具 服装 销售数量 : 时间 ( 月 )

13 4.2.1 多维基本概念 3. 多维数据集 亦称为立方体或超立方 多维数据集可以用一个多维数组表示 如上例 :( 时间, 地理位置, 产品, 销售数据 ) 在多维数据集中, 用 ( 维 1, 维 2,, 维 n, 观察变量 ) 的方式表达 对于超过三维的多维数据集结构可以用一个多维表来显示 如表 4-1 所示

14 4.2.1 多维基本概念 4. 维成员 维的一个取值 不同维层次取值的组合 维成员描述所关心的主题在维中的位置 当在多维数据集中的每个维都选中一个维成员以后, 这些维成员的组合就唯一确定了观察变量的值 数据单元可以表示为 :( 维 1 维成员, 维 2 维成员, 维 3 维成员, 维 4 维成员, 观察变量值 ) 如上例 :( 上海,2002 年 4 月, 服装,10000)

15 4.2.1 多维基本概念 5. 多维数据集的度量值 多维数据集的核心值, 是最终用户在数据仓库应用中所需要查看的数据 6. 聚集 聚集或聚合是指收集了基本事务数据的结构 立方体中包括很多层次, 这些层次可以向用户提供某一层次的概括数据 通过聚集, 形成基于维的有决策分析意义的一些数据交集

16 4.2.2 多维分析 OLAP 的多维分析是指对多维数据集中的数据用切片 切块或旋转等方式分析数据 1. 多维的切片 如果对多维数据集的某一个维选定一维成员, 这种选择操作可以称为切片 ( 维 1, 维 2,, 维 i 成员,, 维 n, 观察变量 ) 是多维数据集 ( 维 1, 维 2,, 维 i,, 维 n, 观察变量 ) 在维 i 上的一个切片 这种切片的数量完全取决于维 i 上维成员的个数, 如果维数越多, 可以做的切片也就越多 切片的目的是 : 降低多维数据集的维度, 使注意力集中在较少维度上

17 4.2.2 多维分析 2. 多维的切块 在一个多维数据集上对两个及两个以上的维选定维成员的操作成为切块 在 ( 维 1, 维 2,, 维 i,, 维 k,, 维 n, 观察变量 ) 多维数据集上, 对维 i,, 维 k, 选定了维成员, 那 ( 维 1, 维 2,, 维 i 成员,, 维 k 成员,, 维 n, 观察变量 ) 就是多维数据集 ( 维 1, 维 2,, 维 i,, 维 k,, 维 n, 观察变量 ) 在维 i,, 维 k 上的一个切块 如果 i=k 时, 切块操作就退化成了切片操作 切块操作可以看成是进行了多次切片操作以后, 将每次切片操作所得到的切片重叠在一起而形成的

18 4.2.2 多维分析 3. 旋转 将多维数据集中的不同维进行交换显示, 使用户能够更加直观地观察到数据集中不同维之间的关系 2002 年 2003 年 1 季度 2 季度 3 季度 4 季度 1 季度 2 季度 3 季度 4 季度 北京市 上海市 天津市

19 4.2.2 多维分析 3. 旋转 北京市 上海市 天津市 2002 年 1 季度 季度 季度 季度 年 1 季度 季度 季度 季度

20 4.2.2 多维分析 4. 其它 OLAP 操作 上卷 (roll_up): 是指沿某一个维的概念分层向上归约 ; 下钻 (drill_down): 是上卷的逆向操作, 它是沿某一个维的概念分层向下或引入新的维来实现 ; 钻过 (drill_across): 是指对多个事实表进行查询 ; 钻透 (drill_through) : 是指对立方体操作时, 利用数据库关系, 钻透立方体的底层, 进入后端的关系表 OLAP 的其它操作还有统计表中最高值和最低值的项数, 计算平均值 增长率 利润 投资回报率等统计计算

21 4.2.3 维的层次关系 维的层次关系使用层次图来表示 简单层次 全国 江苏北京上海

22 4.2.3 维的层次关系 维的层次关系使用层次图来表示 复杂层次 全国 江苏北京上海 苏州市 扬州市 宝应县

23 4.2.3 维的层次关系 维的层次信息存储在元数据中 在维的层次描述中, 如果维的层次越高, 所对应的综合层次越高, 粒度就越粗 如果维的层次越多, 粒度的层次越丰富

24 4.2.4 维的类关系 在 OLAP 应用中, 需要在查询中首先根据用户关于类别的要求对所有维成员进行分类, 然后在分类的基础上归纳出类的共同特征或区别于其他类的特征 维层次与类不同 : 维层次表达的是维成员的不同综合层次, 而类表达了具有某一相同特征的维成员的集合 类的划分, 只能依据同一层次的维成员集合来划分 不能将不具有相同特征的维成员划分在同一类中, 也不能将不是同一层次的维成员划分在同一类中

25 4.2.4 维的类关系 在 OLAP 应用中, 常常在维的层次关系上进行分析的同时, 又要在维成员的类关系上进行分析 此时, 所涉及到的多维数据集就是一个复杂的数据关系 产品维 维层次关系 产品产地类 产品销地类 产品用途类 产品大类 产品小类 维的层次与类组合图

26 4.2.5 OLAP 与数据仓库关系 数据仓库 包含企业历史数据的大规模数据库, 这些历史数据主要用于对企业的经营决策提供分析和支持 数据仓库中的数据不能用于联机事务处理系统 OLAP 利用多维数据集和数据聚集技术对数据仓库中的数据进行组织和汇总, 然后利用联机分析和可视化工具对这些数据进行评价

27 4.2.5 OLAP 与数据仓库关系 从 OLAP 使用的效率角度考虑, 设计数据仓库时考虑因素 尽可能使用星型架构, 如果采用雪花结构, 就要最小化事实表底层维度表以后的维度表数量 为用户设计包含事实表的维度表 维度表的设计应该符合通常意义上的范式约束, 维度表中不要出现无关的数据 事实表中不要包含汇总数据, 事实表中所包含的用户需要访问的数据应该具有必需的粒度 对事实表和维度表中的关键字必须创建索引 ; 同一种数据尽可能使用一个事实表 保证数据的参考完整性, 避免事实表中的某些数据行在立方体进行聚集运算时没有参加进来

28 业务处理系统第三层第二层第一层 数据抽取 数据准备区 数据清理 转换 数据加载 客户端 数据仓库 多维化 OLAP 服务器 可视化处理 数据仓库与 OLAP 关系图

29 4.3 OLAP 的实施

30 由于 OLAP 是介于客户与数据仓库之间的数据分析处理系统, 它需要对来自数据仓库的数据进行多维处理和分析, 在系统构造中常采用三层客户机 / 服务器结构 OLAP 服务器 完成系统的主要处理 ( 如数据存取 后台数据处理 报表的预处理 ) 客户端 可视化的方式显示分析结果 数据仓库 包含大量业务处理系统的操作细节数据和其他的综合数据

31 4.4 多维 OLAP 与关系 OLAP

32 4.4.1 多维数据库 多维数据库可以在 OLAP 系统中直观地表达出现实世界中 的多对多关系 但关系数据库则不能 例如 : 若存储产品信息 ( 电器 服装 ) 和地区信息 ( 江苏 上 海 北京 ) 的销售情况 进行统计查询时两种数据库的操作不同

33 4.4.1 多维数据库 产品名称销售地区销售数量 电器电器电器服装服装服装 关系数据库存储数据的方式 江苏上海北京江苏上海北京 多维数据库存储数据的方式 江苏上海北京 电器服装

34 4.4.1 多维数据库 多维数据库中的数据可以按照行或列进行累加 其统计速度远远高于关系数据库 具有汇总数据项的关系数据库 产品名称销售地区销售数量 电器电器电器电器服装服装服装服装汇总汇总汇总汇总 江苏上海北京汇总江苏上海北京汇总江苏上海北京汇总 电器服装汇总 具有汇总值的多维数据库 江苏上海北京汇总

35 4.4.2 多维数据库的数据存储 维数扩展到三维或更高的维度时, 多维数据库 MDDB 就成了一种 超立方 体的结构 在 MDDB 中, 其数据的存储是由许多类似于数组的对象来完成 对象中包含了经过高度压缩的索引和指针, 利用这些索引和指针将许多存储数据的单元块联结在一起 实际组合中往往由于各种原因会导致某些组合没有具体的值, 或值是空的或者为零 产生了多维数据库的稀疏矩阵问题

36 4.4.3 多维数据库与数据仓库 内容数据仓库多维数据库 存储的数据量 大量数据 某些类型用户所需要的集成数据, 数据量远低于数据仓库 访问用户 只允许少量分析人员访问 允许众多用户进行大量的非预知的数据访问和分析 数据存储的时间范围 5~10 年大约 1 年左右

37 4.4.3 多维数据库与数据仓库 多维数据库与 OLAP 的应用共存 在 OLAP 应用中, 常常希望将三层结构中的第三层去掉, 直接从业务处理系统中抽取数据导入多维数据库, 会有一些问题 : 增加数据抽取部分的工作量 会产生多套多维数据库的数据抽取 清理和转换的程序 而数据仓库结构只需一套 缺乏统一的数据源和结论 对每个部门的多维数据库进行抽取结构不能统一 加大系统的维护工作量 业务处理系统的变动会影响各部门的 OLAP 系统 缺乏对元数据的有效管理 加大 OLAP 系统的开发投入 各部门的 OLAP 都需要对业务处理系统进行数据抽取等操作

38 4.4.4 MOLAP 的创建与功能 1.MOLAP 的创建 选择功能 确定分析数据 构造分析维 : 分析数据的角度, 确定维的粒度 定义逻辑模型 2.MOLAP 功能 快速响应能力 与多维数据库进行交互的能力 挖掘信息间的内在联系 提供各种模型 : 如统计分析模型 趋势分析模型等 数据导航能力

39 4.4.5 ROLAP 实现的三个原则 1. 支持 OLAP 原则 能够支持数据的多维特性, 能够对数据进行切片 切块 旋转, 并进行可视化显示 2. 数据存储在某一个关系型数据库中 在存储于关系型数据库前为适应 OLAP 应用需要, 应进行哪种方式的处理 3. 支持某种形式的聚集导航 是一种能够为用户的不同查询选择一个最小可用表 ( 概况表 ) 的软件, 以提高数据查询速度

40 4.4.6 ROLAP 的多维表示方法 1. 星型模式在关系数据库中的表示 多维数据库在关系数据库中表示时需要分为两大类型 : 一类是用于存储事实度量值与各个维主键的事实表 另一类是维表, 在维表中至少要保存描述该维的层次关系 成员的类别等元数据 事实表通过每一个维的主键值与维表联系在一起 进行多维查询时, 通过维表的主键, 对事实表和维表进行连接操作 在一次查询操作中, 可以获得查询对象的事实值以及对数据的多维描述 ( 对应维上的维成员 )

41 4.4.6 ROLAP 的多维表示方法 产品维表 产品 ID 时间维表 时间 ID 产品 ID 销售商 ID 地址 ID 时间 ID 销售数量销售成本总收入 销售商 ID 销售商维度表 地址 ID 地理位置维表 星型模式的关系数据库表示

42 4.4.6 ROLAP 的多维表示方法 2. 雪花模式在关系数据库中的表示 在 OLAP 应用中, 常常有包含维层次和维类别的复杂分析要求 这样就需要用多张维表来描述复杂的维关系 根据维表的复杂程度选择合适的模式

43 4.4.6 ROLAP 的多维表示方法 产品 ID 产品名称 公司 ID 公司名称 产品维表 产品颜色 ID 产品颜色 产品 ID 公司 ID 产品颜色 ID 产品商标 ID 产品类型 ID 产品 ID 产品商标 ID 商标名称 产品类型 ID 产品类型名 时间维表 时间 ID 产品 ID 销售商 ID 地址 ID 时间 ID 销售数量销售成本总收入 地址 ID 销售商 ID 销售商维度表 地理位置维表 雪花模式的关系数据库表示

44 4.4.7 ROLAP 的创建与功能 1.ROLAP 的创建 选择功能 确定分析数值 构造分析维 定义逻辑模型 ( 与 MOLAP 相同 ) 数据添加 : 添加聚集数据和概括数据到数据库中 数据管理 : 添加索引以提高处理效率 元数据存储 应用工具构造 : 利用数据的应用视图或维视图构造客户工具

45 4.4.7 ROLAP 的创建与功能 2.ROLAP 的功能 提供基于关系数据的商业视图 : 要求能将星型 / 雪花 / 混合模型转化为商业视图, 使用户实现决策分析 维层次支持 : 能实现维层次于关系数据存储的转化与管理 模型的自定义 : 能根据决策分析的需要选择不同的计算 统计和分析模型 细剖细节层次 : 允许用户进行数据聚集 概括分级等分析 数据的备分恢复和安全功能 元数据导航 OLAP 服务器性能的协调等功能

46 4.5 OLAP 技术评价

47 4.5.1 MOLAP 与 ROLAP 的比较 1. 查询性能 MOLAP 的查询能力一般较好, 因为在多维数据库中常根据用户的需求实现做好许多计算 ROLAP 虽然可通过构造索引表和概括表来加快查询速度, 但对特殊的查询, 速度不如 MOLAP. 2. 数据加载性能 MOLAP 在数据加载操作中除了完成数据装在, 还要对所有立方体中的所有值进行计算, 因此加载时间比较长 ROLAP 仅是数据装载 索引和概况表的创建 因此加载时间比 MOLAP 短 3. 分析能力 MOLAP 在分析过程中的精度较高, 具有分析优势 ROLAP 的分析结果由于 SQL 语言的约束, 分析效果不如 MOLAP 因为许多问题很难用一条 AQL 语句来实现

48 4.5.1 MOLAP 与 ROLAP 的比较 4. 数据集市的大小 MOLAP 在实际应用中的数据存储量往往增长较快, 尤其所创建的多维模式中拥有多个维时, 所增加的空间会很大 ROLAP 使用关系数据库, 可以支持数据增长的存储要求, 只要磁盘空间足够大 5. 维的管理 ROLAP 采用星型模式构建时, 维表会包含很多列, 可以对表中的所有列进行查询 汇总等操作 MOLAP 很难完成复杂操作, 对多维数据库中的操作受到多维表中所包含的不同维的 层次 制约 6. 维护能力 MOLAP 能够进行自我维护, 而 ROLAP 比较困难, 因为在数据加载和聚集是要填充多个结构

49 4.5.1 MOLAP 与 ROLAP 的比较 选择 MOLAP 还是 ROLAP 需要根据具体情况定 应用规模是主要因素 如果需要建立一个大型的 功能复杂的企业级数据仓库就选择 ROLAP 如果希望建立一个目标单一 维数不是很多的分析型数据集市, 就选择 MOLAP 混合 OLAP(HOLAP): 将多维数据集市的数据按照结构存储在分析服务器上, 但不保存源数据

50 4.5.2 OLAP 的衡量标准 1. 多维性 2. 直观性 3. 可访问性 4. 解释性批处理提取 5.OLAP 分析模型 6. 客户机 / 服务器结构性 7. 透明性或开放性 8. 多用户性 9. 处理非正规数据性

51 4.5.2 OLAP 的衡量标准 10. 存储 OLAP 结果 11. 提取丢失值 12. 处理丢失值 13. 弹性报告 14. 一致性能报告 15. 对物理层的自动调整 16. 通用维 17. 无限维与聚合层 18. 无限制跨维操作

52 4.5.3 OLAP 服务器和工具的评价标准 1.OLAP 功能 2. 访问性能 3. 引擎功能 4. 管理能力