在线分析处理OnlineAnalyticalProcessingOLAP发展背景60年代,关系数据库之父E.F.Codd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。1993年,E.F.Codd提出了OLAP概念,认为OLTP已不能满足终端用户对数据库查询分析的需要,SQL对大型数据库进行的简单查询也不能满足终端用户分析的要求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,E.F.Codd提出了多维数据库和多维分析的概念,即OLAP。OLAP是目前RDBMS不可缺少的功能,可以作为一个独立的OLAP服务器实现,也可以集成在RDBMS中。什么是OLAP?定义1:OLAP(联机分析处理)是针对特定问题的联机数据访问和分析。通过对信息(维数据)的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。定义2:OLAP(联机分析处理)是使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。(OLAP委员会的定义)OLAP的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,因此OLAP也可以说是多维数据分析工具的集合。OLAP决策分析OLAP分析属于验证驱动型发现:用户首先提出自己的假设,然后利用OLAP工具检索查询以验证或否定假设。OLAP的数据源OLTP&LegacyERPFlatFilesDataWarehouses,DataMarts,ODSSpreadsheetsOLAP基本概念维:是人们观察数据的特定角度,是考虑问题时的一类属性(时间维、地理维等)。维的层次:人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年)。维的成员:维的一个取值。是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)多维数组:维和变量的组合表示。一个多维数组可以表示为:(维1,维2,…,维n,变量)。(时间,地区,产品,销售额)数据单元(单元格):多维数组的取值。(2000年1月,上海,笔记本电脑,$100000)产品时间财务指标进口烟国产烟收入开销Q1Q2Q3Q4卷烟销售分析OLAP特性快速性:用户对OLAP的快速反应能力有很高的要求。系统应能在5秒内对用户的大部分分析要求做出反应。客户/服务器体系结构-两层或三层C/S结构。可分析性:OLAP系统应能处理与应用有关的任何逻辑分析和统计分析。多维性:多维性是OLAP的关键属性。系统必须提供对数据的多维视图和分析,包括对层次维和多重层次维的完全支持。信息性:不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信息。OLAP工具的分类标准分成多维数据库工具(MOLAP)、关系型数据库工具(ROLAP)和桌面型数据库工具。支持多维数据库工具的是多维数据库,而不是传统上的关系型数据库,数据存储不采用传统关系模型所使用的记录及表等方式,而采用矩阵(多维矩阵)方式来存储数据。与多维数据库工具相比,关系型OLAP工具在数据库层次上有标准的关系模型和标准的数据访问方式及其编程接口,工具与数据库的互联性较好。桌面型OLAP工具是指在微机环境下开发的支持简单多维分析的用户工具,这些工具没有自己的数据存储,而把用户提交的查询翻译成对数据源的查询,然后从数据源中提取结果数据,并将这些结果数据合成最终的结果返回给客户。OLAP多维数据结构超立方结构(Hypercube)多维数据集立方体或超立方结构指用三维或更多的维数来描述一个对象,每个维彼此垂直。数据的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性(收缩超立方结构,这种结构的数据密度更大,数据的维数更少,并可加入额外的分析维)。客户种类数量分布多维立方OLAP操作Codd从可视化角度提出,主要基于统计的方法:切片和切块(SliceandDice)在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在“城市、产品、时间”三维立方体中进行切块和切片,可得到各城市、各产品的销售情况。钻取(Drill)钻取包含向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)操作,钻取的深度与维所划分的层次相对应。旋转(Rotate)/旋转(Pivot)通过旋转可以得到不同视角的数据。辅之于各种图形展示分析结果切片、切块销售数据的4-D表示DicingExampleDicing:FilteringbyAUS1+AUS2andWholesaleSlicingExampleSlicing:FilteringbyAUS2Web数据的多维分析钻取数据聚集旋转时间产品财务指标产品pivotDrill-across:Distributionfirst,SalesOrg.second按城市的销售数据按产品的销售数据国际体育用品公司的数据分析(1)IBMVisualWarehouseV3.1LotusApproach或MicrosoftAccessIntelligentMinerfordata/text国际体育用品公司的数据分析(2)按地区划分的头盔销售数据按地区和国家划分的头盔销售数据国际体育用品公司的数据分析(3)按地区、国家和城市划分的头盔销售数据山地车和头盔销售的比较BrioEnterprise丰富的钻取功能图4.5Cognos的钻取操作IBMCognos的钻取操作OLAP分类按照存储方式OLAPMOLAPHOLAPROLAP按照处理地点ClientOLAPServerOLAPRelationaldatabaseCubeMicrosoftSQLServerOLAPServiceROLAPMOLAPHOLAP基于关系数据库的OLAP-ROLAP用关系表达式描述多维概念-大量的关系表。用星型模型、雪花模型构造维模型。DBDW基础数据元数据计算结果多维综合引擎多维视图SQL存取多维存取RDBMS服务器关系型OLAP服务器客户MOLAP的多维立方体(Multicube)DBDW多维视图基础数据计算结果多维数据库引擎客户多维存取基于多维数据库(MDDB)的OLAP-MOLAP•OLAP服务器:存储OLAP服务软件和多维数据库•MDDB存储:采用“超立方体”形式•MDDB存取:多维操作数据组织形式RDB数据组织-MDDB数据组织-关系表中综合数据的存放多维数据库中综合数据的存放产品名称地区销售量冰箱东北50冰箱西北60冰箱华北100彩电东北40彩电西北70彩电华北80空调东北90空调西北120空调华北140东北西北华北冰箱5060100彩电407080空调90120140产品名称地区销售量冰箱东北50冰箱西北60冰箱华北100冰箱总和210彩电东北40彩电西北70彩电华北80彩电总和190空调东北90空调西北120空调华北140空调总和350总和东北180总和西北250总和华北320总和总和750东北西北华北总和冰箱5060100210彩电407080190空调90120140350总和180250320750ROLAP与MOLAP比较在MOLAP中,不但把多维实视图在概念上看成一个超立方体,而且在物理上把多维实视图组成一个多维数组,而不象ROLAP以表的形式存储实视图。在MOLAP中,维的属性值被映射成多维数组的下标值或下标的范围,而总数据作为多维数组的值存储在数据的单元中。ROLAP在节省存储空间、灵活性、与关系数据库保持一致性等方面有明显的优势;MOLAP则在性能和管理的简便性方面有其优点。MOLAP的查询速度比较快,但有下面限制:用多维数组实现多维实视图,需要很大的存储空间。在实际的数据仓库中,每维的属性值个数可能数万。例如几万种产品、几万个连锁店等。而实际的维数可能多达几十乃至几百。耗费的存储空间相当可观,由此带来加载、维护等问题。在多维数组中,很可能有些单元是空白的,如节假日商店不营业;某些产品在某些地区不销售等。MOLAP与关系数据库系统从存储结构到查询语言都有相当大的差别,不可能在RDBMS的基础上实现。ROLAP与MOLAP比较(续)MOLAP与ROLAPHOLAP的特点以HOLAP格式存储的立方体,要比以OLAP格式存储的立方体小,在查询总结数据时,又比ROLAP快。HOLAP存储格式一般比较适合于需要总结数据的查询有较快的响应时间,同时基数据的量又比较大的场合。推荐资料(IBM红皮书)DB2OLAPServerIBMBIcertificationguide