第2章联机分析处理2.1联机分析处理概念2.1.1OLAP(on-lineanalytical)的定义定义1:OLAP(联机分析处理)是针对特定问题的联机数据访问和分析。通过对信息(这些信息已经从原始的数据进行了转换,以反映用户所能理解的企业的真实的“维”)的很多种可能的观察形式进行快速、稳定一致的交互性的存取,允许管理决策人员对数据进行深入观察。定义2(OLAP理事会的定义):OLAP(联机分析处理)是一种软件技术,他使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,这些信息是从原始数据直接转换过来的,他们以用户容易理解的方式反映企业的真实情况。2.1.2OLAP的基本概念变量:变量是数据的实际意义,即描述数据“是什么”。例如:数据“10000”本身没有意义或者说意义未定,它可能是一个学校的学生人数,也可能是某产品的单价,还可能是某商品的销售量,等等。一般情况下,变量总是一个数值度量指标,例如:“人数”、“单价”、“销售量”等都是变量,而“10000”则是变量的一个值。维:是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维。例如,企业常常关心产品销售数据随着时间推移而产生的变化情况,这时他是从时间的角度来观察产品的销售,所以时间就是一个维(时间维)。企业也时常关心自己的产品在不同地区的销售分布情况,这时他是从地理分布的角度来观察产品的销售,所以地理分布也是一个维(地理维)。维的层次:人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面,我们称这多个描述方面为维的层次。一个维往往具有多个层次,例如描述时间维时,可以从日期、月份、季度、年等不同层次来描述,那么日期、月份、季度、年等就是时间维的层次;同样,城市、地区、国家等构成了地理维的多个层次。维的成员:维的一个取值称为该维的一个维成员。如果一个维是多层次的,那么该维的维成员是在不同维层次的取值的组合。例如,我们考虑时间维具有日期、月份、年这三个层次,分别在日期、月份、年上各取一个值组合起来,就得到了时间维的一个维成员,即“某年某月某日”。一个维成员并不一定在每个维层次上都要取值,例如,“某年某月”、“某月某日”、“某年”等等都是时间维的维成员。对应一个数据项来说,维成员是该数据项在某维中位置的描述。例如对一个销售数据来说,时间维的维成员“某年某月某日”就表示该销售数据是“某年某月某日”的销售数据,“某年某月某日”是该销售数据在时间维位置的描述。多维数组:维和变量的组合表示。一个多维数组可以表示为:(维1,维2,…,维n,变量)。例如图2-1所示的日用品销售数据是按时间、地区和销售渠道组织起来的三维立方体,加上变量“销售额”,就组成了一个多维数组(地区,时间,销售渠道,销售额)。如果我们在图的基础上扩展一个维,产品维,就得到一个四维的结构。销售渠道地区北京零售批发1234销售额(万元)时间(月)图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)OLTP数据OLAP数据原始数据细节性数据当前值数据可更新一次处理的数据量小面向应用,事务驱动面向操作人员,支持日常操作导出数据综合性和提炼性数据历史数据不可更新,但周期性刷新一次处理的数据量大面向分析,分析驱动面向决策人员,支持管理需要表2.1OLTP与OLAP的比较2.1.4OLAP准则准则1:OLAP模型必须提供多维概念视图。销售额纯利润额外支出北京数据库软件Easybase今年各季度代理商时间维地区维销售渠道维产品维图2-2多维概念视图示例准则2:透明性准则。数据源数据层/应用逻辑层界面层服务器侧OLAP数据源客户侧OLAP用户界面最终用户OLAP的数据接口分析工具图2-3OLAP透明性示意图OLAP用户界面1)位置是随意的2)数据源是随意的准则3存取能力准则。OLAP系统不仅能进行开放的存储,而且能提供高效的存储策略。OLAP用户分析员不仅能在公共概念试图的基础上对关系数据库中的企业数据进行分析,而且还可以在公共分析模型的基础上对关系数据库、非关系数据库和外部存储数据进行分析。准则4稳定的报表性能。当数据维数和数据的综合层次增加时,提供给最终分析员的报表输出能力和系统响应速度不应该有明显的降低和减慢,这对于维护OLAP产品的易用性和低复杂性至关重要。即便是企业模型发生改变时,关键技术的计算方法也无须修改。也就是说,OLAP系统模型对企业模型应该具有稳健性。准则5客户/服务器体系结构。客户界面应用逻辑层数据层数据层应用逻辑层、客户界面服务器侧客户侧服务器侧中间层客户侧图2-4两层客户/服务器结构和三层结构准则6:维的等同性原则。每一数据维在数据结构和操作能力上都是等同的。系统可以将附加的操作能力授予选定维,但必须保证这种操作能力可以授予任意的其他维,即要求维之上的操作是公共的。准则6实际上是准则1的补充,是对维的基本结构和维上的操作的要求。准则7:动态的稀疏矩阵处理准则OLAP工具的物理模型必须充分适应指定的分析模型,提供“最优”的稀疏矩阵处理,这是OLAP工具所应遵循的最重要的准则之一。准则8多用户支持能力准则多名用户分析员可以同时工作于同意分析模型上或在同一企业数据上建立不同的分析模型。此准则可由准则5推出。OLAP工具必须提供并发访问、数据完整性及安全性机制。准则9非受限的跨维操作多维数据之间存在着固有的层次关系,这就要求OLAP工具能自推导而不是由最终用户明确定义相关的计算。对于无法从固有关系中得出的计算,要求系统提供计算功能完备的语言来定义各类计算公式。准则9是对准则1的一种补充,对操作能力和操作范围作出了要求。准则10直观的数据操纵这一准则要求数据操纵直观且易懂。综合路径重定位、向上综合、向下挖掘和其他操作都可以通过直观的点击、拖拽操作完成。准则11:灵活的报表生成报表必须从各种可能的方面显示出从数据模型重综合出的数据和信息,充分反映数据分析模型的多维特征。例如表2。2(P48)报表形式,该表为一个四维(包括统计指标自身)报表,分析人员可以根据需要对各维进行旋转,汇总以及合并操作(如将季度维合并,变成三位报表等)。表2-2多维报表示例维4维1维2维3北京地区上海地区维2维3销售量纯利润/元成本/元销售量纯利润/元成本第一季度工作站PC机软件计算机配件1235136455670001940056900231005203501206708232001270412001270075300697004402001001200第二季度工作站PC机软件计算机配件52021356831600124008700043600200100100540212542601160073902190024500100200100250准则12非受限维与聚集层次透明性准则存取能力准则稳定的报表能力客户/服务器体系结构多用户支持能力准则动态稀疏矩阵处理准则灵活的报表生成多维概念视图直观的数据处理维的等同性准则不受限的跨维操作非受限的维与聚集层次图2-5十二准则间的关系2.2OLAP的多维数据分析2.2.1OLAP的基本分析动作⒈数据切片产品电视机电冰箱19951996上海广州时间(年)广州上海电视机上海电冰箱图2-6数据切片示意⒉数据切块数据切块就是将完整的数据立方体切取一部分数据而得到的新的数据立方体,如图2-7所示。图2-7数据切块的示意图2-8示例了一个具体数据切块的例子。假设问题同时间维、地理维、产品维相关,指定时间维的取值维1998~2001,地理维指定为(上海、北京、广州),产品维指定为(计算机、电冰箱、电视机),则我们可以得到图2-8右侧的数据切块,它是原先完整的数据立方体的一部分。产品维地理维时间维计算机电冰箱电视机广州北京上海1998200019992001图2-8数据切块示意图⒊数据钻取(下钻)在下面的两个表中,我们展示了一个企业在不同的时间和地理上的销售量的分布情况。在表2-3中,时间的层次是“年”,如果我们选择时间维度向下钻取,得到表2-4,显示的是该企业每年每季度在各个分区上的销售情况,显然第二张表中各个季度的销售量总和等于第一张表中一年的销售量。类似的,也可以在地理维度上进行钻取。表2-3时间维度为“年”的数据钻取表2-4时间维度为“季度”的数据钻取销售量时间/年地理20052006华北部200230华南部456478西北部100120200520061季2季3季4季1季2季3季4季华北部5050505050505080华南部120120100116120120120118西北部2424242825252545⒋数据聚合(上卷)数据聚合实际上是钻取的逆向操作,是对数据进行高层次综合的操作。⒌数据旋转产品维时间维0时间维产品维0行列交换产品维0地理维时间维地理维0产品维时间维旋转以改变显示格局(a)(b)图2-9旋转操作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%,可针对这种情况进行数据钻取。项目2005年2006年增长率/%销售量/万元利润增长/%销售量/万元利润增长/%销售量/万元利润增长服装23467027.238110221.562.4(21.0)家具6254833.86600531.15.5(8.0)汽车37509822.432540227.2(13.2)21.4其他20238821.330667721.751.51.92数据钻取对汽车部门钻取具体项目(维修、附件、音乐)的销售情况和利润增长情况,如表2.6所示。表2.6数据钻取项目2005年2006年增长率/%销售量/万元利润增长/%销售量/万元利润增长/%销售量/万元利润增长汽车37509822.432540227.2(13.2)21.4维修19505114.218078615.0(7.3)5.6附件11628043.912254547.55.48.2音乐637678