数据仓储与数据挖掘讲义,第2章,联机分析处理

第2章联机分析处理 2 1联机分析处理概念 2 1 1OLAP on lineanalytical 的定义定义1 OLAP 联机分析处理 是针对特定问题的联机数据访问和分析 通过对信息 这些信息已经从原始的数据进行了转换 以反映用户所能理解的企业的真实的 维 的很多种可能的观察形式进行快速 稳定一致的交互性的存取 允许管理决策人员对数据进行深入观察 定义2 OLAP理事会的定义 OLAP 联机分析处理 是一种软件技术 他使分析人员能够迅速 一致 交互地从各个方面观察信息 以达到深入理解数据的目的 这些信息是从原始数据直接转换过来的 他们以用户容易理解的方式反映企业的真实情况 2 1 2OLAP的基本概念 变量 变量是数据的实际意义 即描述数据 是什么 例如 数据 10000 本身没有意义或者说意义未定 它可能是一个学校的学生人数 也可能是某产品的单价 还可能是某商品的销售量 等等 一般情况下 变量总是一个数值度量指标 例如 人数 单价 销售量 等都是变量 而 10000 则是变量的一个值 维 是人们观察数据的特定角度 是考虑问题时的一类属性 属性集合构成一个维 例如 企业常常关心产品销售数据随着时间推移而产生的变化情况 这时他是从时间的角度来观察产品的销售 所以时间就是一个维 时间维 企业也时常关心自己的产品在不同地区的销售分布情况 这时他是从地理分布的角度来观察产品的销售 所以地理分布也是一个维 地理维 维的层次 人们观察数据的某个特定角度 即某个维 还可以存在细节程度不同的各个描述方面 我们称这多个描述方面为维的层次 一个维往往具有多个层次 例如描述时间维时 可以从日期 月份 季度 年等不同层次来描述 那么日期 月份 季度 年等就是时间维的层次 同样 城市 地区 国家等构成了地理维的多个层次 维的成员 维的一个取值称为该维的一个维成员 如果一个维是多层次的 那么该维的维成员是在不同维层次的取值的组合 例如 我们考虑时间维具有日期 月份 年这三个层次 分别在日期 月份 年上各取一个值组合起来 就得到了时间维的一个维成员 即 某年某月某日 一个维成员并不一定在每个维层次上都要取值 例如 某年某月 某月某日 某年 等等都是时间维的维成员 对应一个数据项来说 维成员是该数据项在某维中位置的描述 例如对一个销售数据来说 时间维的维成员 某年某月某日 就表示该销售数据是 某年某月某日 的销售数据 某年某月某日 是该销售数据在时间维位置的描述 多维数组 维和变量的组合表示 一个多维数组可以表示为 维1 维2 维n 变量 例如图2 1所示的日用品销售数据是按时间 地区和销售渠道组织起来的三维立方体 加上变量 销售额 就组成了一个多维数组 地区 时间 销售渠道 销售额 如果我们在图的基础上扩展一个维 产品维 就得到一个四维的结构 数据单元 单元格 多维数组的取值 当多维数组的各个维都选中一个维成员 这些维成员的组合就唯一确定了一个变量的值 那么数据单元就可以表示为 维1维成员 维2维成员 维n维成员 变量的值 例如 我们在地区 时间和销售渠道上各取维成员 北京 2006年12月 和 批发 就唯一确定了变量 销售额 的一个值 假设为10000 则该数据单元可表示为 北京 2006年12月 批发 10000 2 1 3OLAP与OLTP的关系与比较 OLTP on linetransactionprocessing 联机事务处理 所处理的数据是高度结构化的 所设计的事务比较简单 因此复杂的表关联不会严重影响性能 在OLTP系统中 数据访问路径是已知的 至少是相对固定的 应用程序可以在事务中使用具体的数据结构如表 索引等 OLAP是以数据仓库为基础的 其最终数据来源与OLTP一样均来自地层的数据库系统 但由于二者面对的用户不同 OLTP面对的是操作人员和低层管理人员 OLAP面对的是决策人员和高层管理人员 因而数据的特点与处理也明显不同 见表2 1 表2 1OLTP与OLAP的比较 2 1 4OLAP准则 准则1 OLAP模型必须提供多维概念视图 准则2 透明性准则 1 位置是随意的2 数据源是随意的 准则3存取能力准则 OLAP系统不仅能进行开放的存储 而且能提供高效的存储策略 OLAP用户分析员不仅能在公共概念试图的基础上对关系数据库中的企业数据进行分析 而且还可以在公共分析模型的基础上对关系数据库 非关系数据库和外部存储数据进行分析 准则4稳定的报表性能 当数据维数和数据的综合层次增加时 提供给最终分析员的报表输出能力和系统响应速度不应该有明显的降低和减慢 这对于维护OLAP产品的易用性和低复杂性至关重要 即便是企业模型发生改变时 关键技术的计算方法也无须修改 也就是说 OLAP系统模型对企业模型应该具有稳健性 准则5客户 服务器体系结构 准则6 维的等同性原则 每一数据维在数据结构和操作能力上都是等同的 系统可以将附加的操作能力授予选定维 但必须保证这种操作能力可以授予任意的其他维 即要求维之上的操作是公共的 准则6实际上是准则1的补充 是对维的基本结构和维上的操作的要求 准则7 动态的稀疏矩阵处理准则OLAP工具的物理模型必须充分适应指定的分析模型 提供 最优 的稀疏矩阵处理 这是OLAP工具所应遵循的最重要的准则之一 准则8多用户支持能力准则多名用户分析员可以同时工作于同意分析模型上或在同一企业数据上建立不同的分析模型 此准则可由准则5推出 OLAP工具必须提供并发访问 数据完整性及安全性机制 准则9非受限的跨维操作多维数据之间存在着固有的层次关系 这就要求OLAP工具能自推导而不是由最终用户明确定义相关的计算 对于无法从固有关系中得出的计算 要求系统提供计算功能完备的语言来定义各类计算公式 准则9是对准则1的一种补充 对操作能力和操作范围作出了要求 准则10直观的数据操纵这一准则要求数据操纵直观且易懂 综合路径重定位 向上综合 向下挖掘和其他操作都可以通过直观的点击 拖拽操作完成 准则11 灵活的报表生成报表必须从各种可能的方面显示出从数据模型重综合出的数据和信息 充分反映数据分析模型的多维特征 例如表2 2 P48 报表形式 该表为一个四维 包括统计指标自身 报表 分析人员可以根据需要对各维进行旋转 汇总以及合并操作 如将季度维合并 变成三位报表等 表2 2多维报表示例 准则12非受限维与聚集层次 2 2OLAP的多维数据分析 2 2 1OLAP的基本分析动作 数据切片 数据切块 数据切块就是将完整的数据立方体切取一部分数据而得到的新的数据立方体 如图2 7所示 图2 8示例了一个具体数据切块的例子 假设问题同时间维 地理维 产品维相关 指定时间维的取值维1998 2001 地理维指定为 上海 北京 广州 产品维指定为 计算机 电冰箱 电视机 则我们可以得到图2 8右侧的数据切块 它是原先完整的数据立方体的一部分 数据钻取 下钻 在下面的两个表中 我们展示了一个企业在不同的时间和地理上的销售量的分布情况 在表2 3中 时间的层次是 年 如果我们选择时间维度向下钻取 得到表2 4 显示的是该企业每年每季度在各个分区上的销售情况 显然第二张表中各个季度的销售量总和等于第一张表中一年的销售量 类似的 也可以在地理维度上进行钻取 表2 3时间维度为 年 的数据钻取表2 4时间维度为 季度 的数据钻取 数据聚合 上卷 数据聚合实际上是钻取的逆向操作 是对数据进行高层次综合的操作 数据旋转 2 2 2广义OLAP功能 1基本代理操作 1 示警报告 2 时间报告 3 异常报告2数据分析模型 1 绝对模型 静态历史数据分析 方法使用 2 解释模型 静态历史数据分析 原因分析 3 思考模型 动态数据分析 参数自动引入影响分析 4 公式模型 动态数据分析 引入参数的结果与必要性 案例 商业销售分析模型 3商业分析模型 p54 1 分销渠道分析模型 2 客户利润贡献度模型 3 客户关系 信用 优化模型 4 风险评估模型 2 2 3多维数据分析实例 假设有一个5维的数据模型 所涉及的5个维分别为 商店 方案 部门 时间 销售量 1多维数据存储指定符合 商店 ALL 某地区内的所有商店 方案 现有 情况的三维表 其中行为 部门 列为 时间 和 销售量 如表2 5所示 表2 5指定商店 方案的三维表表2 5中无括号数为增量 有括号数为下降量 后续表中的表示方法与此一致 汽车部门出现了奇怪的现象 销售量下降了13 2 而利润却增加了21 4 可针对这种情况进行数据钻取 2数据钻取对汽车部门钻取具体项目 维修 附件 音乐 的销售情况和利润增长情况 如表2 6所示 表2 6数据钻取 3切片表切片操作是指取出某些行或列不显示 如对表2 5的切片如表2 7所示 表2 7切片表 4旋转表将方案维加入销售维中 方案维分为3种情况 现有 计划 最新预测 此次旋转操作得表2 5中2006年的方案的成员 现有 计划 差量 得到旋转表如表2 8所示 表2 8旋转表 2 3OLAP的数据组织 2 3 1多维数据组织MOLAP multidimensionalon lineanalyticalprocessing 多维联机分析处理 多维数据库 multidimensionaldatabase MDDB 维实际上是人们观察事物的视角 维度并不是任意选取的 而是通过对问题的分析而得到的 多维数据直观的表达了客观世界中的 一对多 关系 多对多 关系 图2 10MDDB 多维表 的数据组织 图2 11RDMB 关系表 的数据组织 在关系数据库中 多对多 关系总能转化为 一对多 关系 图2 12RDBMS 关系表 的求和 在OLAP中需要使用多种综合层次的数据 因此对数据进行聚合 求和 处理是非常普遍的 多维表与关系表比较 更加直观 更加节省空间 更加利于计算预运算 图2 13 MOLAP产品的结构 2 3 2关系数据组织ROLAP 维表 维表是用于记录维度的关系表 事实表 事实表是用于记录度量信息的关系表 多维数据立方体中所有的度量信息均可记录在同一事实表中 星型结构的存储实现通过将事实表和维表进行连接 就可以得到 星型结构 雪花结构 图2 19 星座结构 图2 18 2 3 3两种数据组织的比较 结构分析MOLAP结构如图2 20所示 ROLAP结构如图2 21所示 2数据存储速度ROLAP的多维数据以星型结构模型等关系关系数据库 平面形式 存储 并不直接体现 超立方体 形式 在接受客户的OLAP请求时 ROLAP服务器需要将SQL语句转化为多维存储语句 并利用连接运算临时 拼合 多维数据立方体 因此 ROLAP的响应时间比较长 3数据存储容量ROLAP使用传统关系数据库的存储方法 对于存储容量基本上没有现在限制 但是 需要指出的是 在ROLAP中为了提高分析响应速度 经常构造大量的中间表 如综合表 这些中间表带来了大量的冗余数据 4多维计算能力MOLAP支持高性能的决策支持型计算 包括复杂的跨维计算 行级计算 而在ROLAP中 SQL无法完成部分计算 并且ROLAP无法完成多行的计算和维之间的计算 5维度变化的适应性MOLAP需要在建立多维数据库块时确定各个维度以及维度之间的层次关系 在多维数据库建立之后 如果要增加新的维度 通常需要重新建立多维数据库 新增维度后的数据量会急剧增加 而ROLAP增加一个维度时只是增加一张维表并修改事实表 系统中的其他维表无须修改 因此ROLAP对于维表的变更有着更好的适应性 6数据变化的适应性由于MOLAP通过预综合处理来提高系统运行速度 当数据频繁的发生变化时 MOLAP需要重新进行大量的计算 甚至重新建立索引乃至重构多维数据库 在ROLAP中 预综合处理通常由设计者根据需要制定 因此灵活性较好 对于数据变化的适应性高 7软硬件平台的适应性由于关系数据库已经在众多的软硬件平台上成功地运行 因此ROLAP对软硬件平台的适应性很好 而MOLAP则相对较差 8元数据管理目前在元数据的管理上 MOLAP和ROLAP尚无成形的标准 MOLAP产