1第3章联机分析处理--OLAP本章学习目标:通过OLAP技术概念介绍了解OLAP的发展和特点。通过多维分析学习掌握多维的基本概念。通过OLAP的实施掌握OLAP实施方法。通过MOLAP与ROLAP的学习掌握MOLAP与ROLAP的概念。通过OLAP技术评价学习掌握对OLAP技术的评价。23.1概述3.2OLAP定义和基本概念3.3OLAP的数据模型3.4多维数据分析3.5OLAP的结构与分析工具第3章联机分析处理--OLAP33.1概述60年代,关系数据库之父E.F.Codd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。1993年,E.F.Codd提出了多维数据库和多维分析的概念,即OLAP。4OLTPVS.OLAP面向操作人员,支持日常操作面向决策人员,支持管理需要面向应用,事务驱动面向分析,分析驱动一次处理的数据量小一次处理的数据量大可更新不可更新,但周期性刷新当前值数据历史数据细节性数据综合性和提炼性数据原始数据导出数据OLTP数据OLAP数据5OLAP基本思想联机分析处理(OnLineAnalysisProcessing,OLAP)在数据仓库系统中,联机分析处理是重要的数据分析工具。OLAP的基本思想是从多方面和多角度以多维的形式来观察企业的状态和了解企业的变化。OLAP是独立于数据仓库的一种技术概念当OLAP与数据仓库结合时,OLAP的数据源为数据仓库,数据仓库的大量数据是根据多维方式组织的。63.2OLAP定义联机分析处理(OLAP)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。这些信息是从原始数据转换过来的,按照用户的理解,它反映了企业真实的方方面面。(OLAP理事会)7OLAP目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,因此OLAP也可以说是多维数据分析工具的集合。8OLAP基本概念变量:从现实系统抽象出来的,用于描述数据的实际含义,即描述数据“是什么”维:是与某一事件相关的因素在关系模型的抽象,是人们观察数据的特定角度。如产品维、顾客维、时间维等。维的层次性:是由观察数据细致程度不同造成的。如日、月、季、年是时间维的层次。维的取值:即维的成员。如“某年某月某日”是时间维的一个成员。9OLAP基本概念维的分类:按照一定的划分标准对维的所有取值集合的一个分类划分,用于数据钻取和聚合。如上半年、下半年是对时间维的划分。事实:不同维度在某个取值下的交叉点,是对事件的度量。如(牙膏,上海,1998年12月,批发,销售额为100000)多维数据立方体10维的例子一个电子公司的销售一般从三个方面分析销售额:时间:在某一段时间内的销售情况,其度量为(年、季度、月、旬、天)地区:在某个地区的销售情况,度量可分为(地区、国家、省、市)产品:某类或某型号产品的销售情况,度量可分为(类别、型号等)此处,(时间,地区,产品)就构成了三个维。维有层次结构,可以在某个层上察看数据。11维的例子地区的层次全国江苏北京上海苏州市扬州市宝应县12维的例子正好构成一个数据立方体,可以有更高阶的维,但仍然称为数据立方体。时间地区产品原点13OLAP数据立方体的计算(物化)数据立方体的个数有产品(type)、城市(city)、日期(date)三个维,则:alldatetypecitytypedatecitydatecitytypecitytypedate0-D(顶点)方体1-D方体2-D方体3-D(基本)方体14OLAP数据立方体的计算(物化)一般,若有n个维,则立方体个数是nnnnnccc2..10{(city,item,date),(city,item),(city,date),(item,date),(city),(item),(date),all}all表示不对任何维分组,这组形成了该数据立方体的方体格15OLAP数据立方体的计算(物化)实际维上有分层,如(年、季度、月、星期、日),所以实际的立方体个数是极大的。所以,实时计算的工作量极大,但全部事先计算,则存储量又极大。方体的选择计算:不物化:即不预先计算任何“非基本”方体全物化:预先计算所有的方体部分物化:在整个可能的方体集中,有选择地物化一个适当的子集在OLAP中一般采用部分物化,应考虑三个因素:(1)确定要物化的方体子集;(2)利用查询处理时物化的方体;(3)在装入和刷新时,有效地更新物化的方体。163.3OLAP的数据模型3.3.1MOLAP数据模型3.3.2ROLAP数据模型3.3.3MOLAP与ROLAP的比较3.3.4HOLAP数据模型173.3.1MOLAP的数据模型MOLAP是基于多维数据库存储方式建立的OLAP;表现为“超立方”结构,采用类似于多维数组的结构。例如,二维MDDB(数组,即矩阵)的数据组织见下表北京上海广州衣服600700500鞋800900700帽子10020080183.3.2ROLAP数据模型ROLAP是基于关系数据库的OLAP。它是一个平面结构,用关系数据库表示多维数据时,采用星型模型。产品名地区销售量衣服北京600衣服上海700衣服广州500鞋北京800鞋上海900鞋广州700帽子北京100帽子上海200帽子广州80193.3.3MOLAP与ROLAP的比较1.数据存取速度2.数据存储的容量3.多维计算的能力4.维度变化的适应性5.数据变化的适应性6.软硬件平台的适应性7.元数据管理201.数据存取速度ROLAP服务器需要将SQL语句转化为多维存储语句,临时“拼合”出多维数据立方体。因此,ROLAP的响应时间较长。MOLAP在数据存储速度上性能好,响应速度快。212.数据存储的容量ROLAP使用的传统关系数据库的存储方法,在存储容量上基本没有限制。MOLAP通常采用多平面叠加成立体的方式存放数据。MOLAP受操作系统平台中文件大小的限制,当数据量超过操作系统最大文件长度时,需要进行数据分割。多维数据库的数据量级难以达到TB级(只能10~20G)223.多维计算的能力MOLAP能够支持高性能的决策支持计算。ROLAP无法完成多行的计算和维之间的计算。234.维度变化的适应性MOLAP增加新的维度,则多维数据库通常需要重新建立。ROLAP对于维表的变更有很好的适应性。245.数据变化的适应性当数据频繁的变化时,MOLAP需要进行大量的重新计算,甚至重新建立索引乃至重构多维数据库。在ROLAP中灵活性较好,对于数据变化的适应性高。25MOLAPVSROLAPMOLAPROLAP固定维可变维维交叉计算多维视图行级计算超大型数据库读-写应用维数据变化速度快数据集市数据仓库263.3.4HOLAP数据模型HOLAP(HybridOLAP),即混和型OLAP介于MOLAP和ROLAP之间。在HOLAP中,对最常用的维度和维层次,使用多维数据表来存储,对于用户不常用的维度和数据,采用ROLAP星型结构来存储。HOLAP得宜于ROLAP的可伸缩性,和MOLAP的快速计算。(如MSSQLSERVER)在HOLAP的多维数据表中的数据维度少于MOLAP中的维度表,数据存储容量也少于MOLAP方式。HOLAP在数据存取速度上又低于MOLAP。273.4OLAP的基本操作数据切片:多维数据是由多个维度组成的,如果在某个维度上选定一个取值,则多维数据从n维下降成n-1维数据切块:将完整的数据立方体切取一部分数据而得到的新的数据立方体。数据钻取(下钻):从较高的维度层次下降到较低的维度层次上来观察多维数据数据聚合(上卷):对数据进行高层次综合的操作数据旋转:改变维度的位置关系,使最终用户可从其他视角来观察多维数据。28基本操作示例以“城市、产品、时间”三维数据为例,如下图时间产品城市广州上海电视机电冰箱05062920294035504138372321393426273632时间产品地区一季度二季度三季度四季度北京上海南京广州VCD手机电脑空调69(北京,二季度,电脑的销售额)301.切片对三维数据,通过“切片”,分别从产品和城市等不同的角度观察销售情况:广州上海电视机电冰箱31切片示例120294035504138372321393426273632时间产品地区一季度二季度三季度四季度北京上海南京广州VCD手机电脑空调切片(slice):地区=“北京”意义:北京地区四个季度空调、电脑、手机、VCD的销售金额32切片示例220294035504138372321393426273632时间产品地区一季度二季度三季度四季度北京上海南京广州VCD手机电脑空调切片:产品=“空调”意义:空调产品在四个季度中各地区的销售金额332.切块(1)在多维数组的某一个维上选定某一区间的维成员的操作切块可以看成是在切片的基础上,确定某一个维成员的区间得到的片段,也即由多个切片叠合起来。(2)选定多维数组的一个三维子集的操作在多维数组(维1,维2,……,维n,变量)中选定3个维,维i、维j、维k,在这3个维上分别取一个区间,或任意维成员,而其它维都取定一个维成员。34切块示例2029403550413837时间产品地区一季度二季度三季度四季度南京广州手机空调分块(dice):地区=“南京”AND“广州”产品“空调”AND“手机”353.钻取钻取有向下钻取(drilldown)和向上钻取(drillup)操作。向下钻取是使用户在多层数据中能通过导航信息而获得更多的细节性数据。向上钻取获取概括性的数据。362029403550413837时间产品地区一季度二季度三季度四季度南京广州手机空调下钻(drill_down):按时间分到月、甚至天为单位668817161413时间南京广州手机8131113141413121610101513111016空调123456789101112下钻37上卷(roll_up):按时间上卷到半年为单位2029403550413837时间产品地区一季度二季度三季度四季度南京广州手机空调时间产品南京广州手机空调49759175上半年下半年上卷384.旋转通过旋转可以得到不同视角的数据。旋转操作相当于平面数据将坐标轴旋转。例如,旋转可能包含了交换行和列,或是把某一个行维移到列维中去。或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列中的一个)39旋转示意图时间维产品维产品维时间维行列交换旋转以改变显示布局时间维产品维地区维时间维地区维产品维40旋转示例旋转前的数据旋转后的数据2005年2006年部门1季度2季度3季度4季度1季度2季度3季度4季度部门1200200350150120200250140部门225050150150200180230120部门32001501802701802001702501季度2季度3季度4季度部门05年06年05年06年05年06年05年06年部门1200120200200350250150140部门225020050180150230150120部门3200180150200180170270250