OLAP:联机分析处理 | |
(OLAP:Online Analytical Processing) |
联机分析处理(OLAP)指的是对存储在数据库或数据仓库中的数据提供分析的一种软件。OLAP 工具能快速提供复杂数据库查询的答案,并帮助用户分析多维数据中的各维情况。通常 OLAP 应用于数据仓库中的数据处理过程,即所谓的“数据挖掘”(Data Mining)。 关系数据库中,是将经过规范化的实体存放在分散的表格中。该结构非常适用于操作型数据库,但该结构对于复杂的、包含多个表的查询,速度相对较慢。多维数据库是一种更好的查询模式,但其操作性能较差。 OLAP 的主要组成部件是 OLAP 服务器,它位于客户机和数据库管理系统(DBMS)之间。OLAP 服务器清楚数据如何被组织成数据库,并具有关于数据分析的特定功能。例如,OLAP 软件获取关系数据库的一个映像后,重新构建一个多维数据,然后便可重新对此查询。 由操作型数据创建而来的 OLAP 结构被称之为 OLAP 数据集(OLAP cube)。OLAP 数据集中可能包含每个查询的所有答复。OLAP 数据集采用的星型模式指:事实表列出关键事实,然后由中心进行查询的一种方式。大量的维度表与事实表相链接。为避免计算所有可能的数集,所以只对预先确定的数进行完全的计算,其它的作为备用。 OLAP 具有三种类型:
实现 OLAP 的主要难点是查询构成、基本数据选择和模式开发。这使得大多数现代 OLAP 产品与大型预置查询库结合使用。另一个问题是基本数据必须完全一致。 |
OLAP:联机分析处理 |
应用OLAP,你可以向数据仓库提问,"如果糖浆价格每加仑上升0.10美元,而运输费用每英
里下降0.05美元,那么对软饮料分销商有什么影响?"
OLAP和数据仓库是互为补充的。OLAP系统不但可以回答"是谁"、"是什么"等问题,还可
以回答"如果...是什么"、"为什么"等问题,这正是它强于数据仓库的地方。数据仓库存储和
管理数据,OLAP则把数据仓库里的数据转换为策略性的信息。
在这篇文章里,我们要定义什么是联机分析处理(OLAP,On-Line Analytical Processig
),讲述谁需要用联机分析处理和为什么要用联机分析处理。
什么是OLAP
在过去十年中,有相当大比例的公共数据已经转向用关系数据库管理。关系数据库在操
作和控制领域用得尤其广泛,如制造过程控制、代理贸易,这些领域特别强调事务处理。为了
使关系数据库成功地用于这些领域,数据库厂商们花费了很多精力使关系数据库能够高效处
理大量事务,并且有很强的数据容错能力。
最近以来,关系数据库厂商们已经开始把他们的数据库当作建造数据仓库的工具来销售
。数据仓库策略性地存储信息,可以回答有关过去事件的"谁"和"什么"等问题,如提交给数据
仓库的一个典型查询是:"在第三季度东部区域的总收入是多少?"
把数据仓库的功能和OLAP系统的功能区分开来是很重要的。数据仓库一般建立在关系数
据模型的基础上,而OLAP则是从多角度、多方面来观察、处理作为一个整体存在的数据,为进
一步的分析迅速提供所需的信息。
OLAP要对原始的数据进行转换,使数据以人们易于理解的形式真实地反映事物本身。通
过OLAP,分析人员、管理人员和执行人员可以从广泛的角度快捷、紧凑地交互访问各自所需
的信息,有利于对未来的行动作出决定。
OLAP的功能很广,有基本的导航和浏览功能,有计算功能,还有更为重要的分析功能,如时
间安排和复杂建模等。决策者要利用OLAP高级功能,他们要求的东西不仅仅是数据访问,而是
更为高级的策略性信息和知识。一个典型的OLAP计算比简单的数据累加要复杂得多,如
"如果糖浆价格每加仑上升0.10美元而运输费用每英里下降0.05美元,那么对软饮料分销
商有什么影响?"
谁需要OLAP
OLAP应用适用于不同的部门。财政部门可以利用OLAP进行预算、行动花费(调拨)、财政
性能分析和财政建模等;销售部门可以利用OLAP进行销售分析和预测;市场部门可以利用OLA
P进行市场调查分析、销售预测、促销分析、顾客分析和市场/顾客群体划分等。制造部门利
用OLAP的典型例子是产品计划和故障分析。
在上面所有OLAP应用中,最重要的一点就是在管理人员作出决策时向他们提供所需的信
息,因此判断一个OLAP应用是否成功的关键一点就是其提供所需信息的能力,如它为决策提供
实时信息的能力。要做到这一点,就不可能只是简单地提供一些数据。
实时信息是反映复杂关系的计算后数据,如计算飞机飞行时的参数得到的数据。一般情
况下,只有计算反应时间相当短时,对复杂关系的分析与建模才有实际意义。另外,由于对数
据关系的特性事先可能并不知道,因此还要求数据模型有改变的灵活性。一种真正灵活的数
据模型使OLAP系统能够对变化的业务要求作出反应,以满足决策的需要。
虽然OLAP应用能够用于各式各样的场合,但它们都有下面几个关键特性:对数据的多维观
察、密集型计算能力和时间智能。
对数据的多维观察
多维观察是实际业务模型固有的要求,很少有少于三维的业务模型。例如,管理人员在查
看财务数据时,他会看总表(如实际支出与预算的比较)、分类表、单独执行项目和时间等
查看销售数据时,会看产品情况、地理分布、销售渠道和时间等数据。通过对数据的多
维观察,OLAP应用能够更灵活地访问数据,为对事情的分析处理提供良好的基础。设计数据库
时不再需要事先考虑可以对哪些数据进行哪些操作,这些操作速度如何等等问题。管理人员
可以从任何角度、对任何集合的数据进行分析,并且这些分析操作的功能和使用方便程度都
一样。
OLAP软件从一种自然的、合乎人的思维心理的角度来观察数据,用户不必考虑那些复
杂的查询语法。毕竟,管理者们没有必要去理解复杂的表格安排、精巧的表连接和概括
表等技术问题。
某种产品在所有地理区域各周的销售情况如何?特定产品在某个城市每天销售情况如何
?对类似上面这样的查询,OLAP必须有固定的反应时间。下面这些情况是不可接受的:管理者
们为了提交复杂的查询,必须要费大力编写查询命令;或者提交复杂查询后,要等很长时间才
有答复。
复杂计算
对OLAP数据库的真正考验是其提供复杂计算的能力,OLAP数据库要做的决不仅仅是对数
据简单归并。对分析过程来说,常需要对数据进行深入的加工,把数据简单陈列给管理人员是
不够的。复杂计算的例子有份额计算(占总数的百分之多少)、分配(要用到从顶端往下层的
等级结构图)等。
关键的行为指示因子常常要用到代数方程。销售预测要用到趋势代数式子,如移动平均
线、百分比增长等。分析一个特定公司与其竞争对手的销售和促销情况需要对各公司的复杂
关系建立模型。真实的世界是复杂的——在分析处理应用程序中,对复杂关系的建模是关键
所在。
OLAP软件应该提供丰富多样、功能强大的分析工具,但同时计算方法又应该简单明了。
为了使开发者能高效地进行开发,使商业用户能积极主动使用OLAP软件满足自己的要求,计算
方法应该清楚,并且是非过程(nonprocedural)的。如果产生计算结果的方法不清楚,那么开
发和使用都将是一件受折磨的事情。如果计算方法是过程化的,那么对系统的改变将不能及
时完成,并且也不能访问即时信息。
评价事务处理系统好坏的标准是其收集和管理数据的能力,而评价分析处理系统好坏的
标准则是其从数据得出信息的能力。
时间智能
对任何分析应用程序来说,时间都是不可缺少的一个因素。时间只有一维,因为它只能从
前往后延伸。那些真正的OLAP系统应该理解时间的这种序列特性。商业行为几乎肯定要根据
时间来作出判断。
时间数量和其他因素的数量在使用上并不会是一样的。例如,一个管理人员可能会要求
看五月份的销售情况,或者看1995年头五个月的销售情况;他还可能会看蓝衬衫的销售情况但
他几乎不可能会要求看头五件衬衫的销售情况。在OLAP系统中,不同年份的同期比较和同一
年份的期间比较应该很容易定义。
另外,OLAP系统还必须理解时间平衡这个概念。例如,一个公司卖衬衫,一月份卖了10件
,二月份卖了5件,而三月份又卖了10件,那么这个季度总的平衡销售量是25件衬衫。另一方面
,一个公司一月份招进了10名员工,二月份只招进了5名,三月份又招进了10名,那么这个季度
员工增加量是多少呢?大多数公司都会用平均平衡量。在资金方面,大多数公司都用最后平衡
量。
OLAP的好处
成功的OLAP应用程序会提高商业管理人员、开发人员和整个公司的生产效率。OLAP系统
与生俱来的灵活性意味着OLAP应用程序的用户能够更加积极主动地利用系统满足自己的要求
。管理人员不必再依靠IT人员来改变自己的业务纲要,来创立连接,或者来满足自己的其他要
求。
OLAP使得管理人员可以对一些问题建立模型,对那些策略性的信息更有效、更及时的访
问也就等于更有效的决策。而那些缺乏灵活性的系统由于有漫长并且不固定的反应时间,因
而无法用于这一方面。
IT开发人员也可以从合适的OLAP软件中得到好处。如果使用专门为OLAP设计的软件,那
么开发人员可以更快地向商业用户发布应用程序,可以更好地提供服务。
OLAP可以使商业用户建立他们自己的业务模型,这可以进一步减少应用程序积压未交付
量。
不过,不像PC网络上运行的独立的部门应用程序,OLAP应用程序要依靠数据仓库和事务处
理系统来刷新原始数据。结果是,IT部门得到了更为积极主动的用户,使得对用户的支持工作
负担大为减少,但同时又没有放弃对数据完整性的控制。
通过OLAP,IT部门还可以实现更有效率的操作。应用为OLAP设计的软件,IT部门减少了对
事务系统或数据仓库的查询和网络流量。
最后,通过提供对实际商业问题建立模型的能力和对人力资源更有效的使用,OLAP还可以
使公司作为一个整体对市场需求更快地作出反应。(编写 正一)
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同
联机事务处理 (OLTP) 明显区分开来。
当今的数据处理大致可以分成两大类: 联机事务处理OLTP(On-Line Transaction Processing) 联机分析处理OLAP(On-Line Analytical Processing) OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。 OLAP是数据仓库系统的主要应用,支持复杂的分析操作, 侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。
OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。 OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的 技术核心是"维"这个概念。 “维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。 OLAP的基本多维分析操作有 钻取(roll up和drill down)、 切片(slice)和 切块(dice)、以及 旋转(pivot)、drill across、drill through等。 · 钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。 · 切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。 ·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。 OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。 ROLAP表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是 事实表,用来存储数据和 维关键字;另一类是 维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星 型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为 "雪花模式"。 MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方块(Cube)"的结构,在MOLAP 中对"立方块"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。 HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。 还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。 OLAP将数据分为两种特征,一种为表现特征,比如一个销售分析模型中的销售额、毛利等;还有一种为角度特征,比如销售分析中的时间周期、产品类型、销 售模式、销售区域等。前者是被观察的对象,OLAP术语称之为“度量数据”,后者为观察视角,OLAP术语称之为“维数据”。 |
联机分析处理,英文名称为
On-Line Analysis Processing,简写为
OLAP。
随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足这一要求。操作型应用和分析型应用,特别是在性能上难以两全,人们常常在关系数据库中放宽了对冗余的限制,引入了统计及综合数据,但这些统计综合数据的应用逻辑是分散而杂乱的、非系统化的,因此分析功能有限,不灵活,维护困难。在国外,不少软件厂商采取了发展其前端产品来弥补关系数据库管理系统支持的不足,他们通过专门的数据综合引擎,辅之以更加直观的数据访问界面,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求。1993年,E.F.Codd(关系数据库之父)将这类技术定义为“联机分析处理”。 联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。决策数据是多维数据,多维数据就是决策的主要内容。OLAP专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。 联机分析处理具有灵活的分析功能、直观的数据操作和分析结果可视化表示等突出优点,从而使用户对基于大量复杂数据的分析变得轻松而高效,以利于迅速做出正确判断。它可用于证实人们提出的复杂的假设,其结果是以图形或者表格的形式来表示的对信息的总结。它并不将异常信息标记出来,是一种知识证实的方法。 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。 Codd提出OLAP的12条准则来描述OLAP系统: 准则1 OLAP模型必须提供多维概念视图 准则2 透明性准则 准则3 存取能力推测 准则4 稳定的报表能力 准则5 客户/服务器体系结构 准则6 维的等同性准则 准则7 动态的稀疏矩阵处理准则 准则8 多用户支持能力准则 准则9 非受限的跨维操作 准则10 直观的数据操纵 准则11 灵活的报表生成 准则12 不受限的维与聚集层次 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。 OLTP OLAP 用户 操作人员,低层管理人员 决策人员,高级管理人员 功能 日常操作处理 分析决策 DB 设计 面向应用 面向主题 数据 当前的, 最新的细节的, 二维的分立的 历史的, 聚集的, 多维的集成的, 统一的 存取 读/写数十条记录 读上百万条记录 工作单位 简单的事务 复杂的查询 用户数 上千个 上百个 DB 大小 100MB-GB 100GB-TB 一、OLAP的发展背景 随着数据库技术的广泛应用,企业信息系统产生了大量的数据,如何从这些海量数据中提取对企业决策分析有用的信息成为企业决策管理人员所面临的重要难题。传统的企业数据库系统(管理信息系统)即联机事务处理系统(On-LineTransactionProcessing,简称OLTP)作为数据管理手段,主要用于事务处理,但它对分析处理的支持一直不能令人满意。因此,人们逐渐尝试对OLTP数据库中的数据进行再加工,形成一个综合的、面向分析的、更好的支持决策制定的决策支持系统(DecisionSupportSystem,简称DSS)。企业目前的信息系统的数据一般由DBMS管理,但决策数据库和运行操作数据库在数据来源、数据内容、数据模式、服务对象、访问方式、事务管理乃至无力存储等方面都有不同的特点和要求,因此直接在运行操作的数据库上建立DSS是不合适的。数据仓库(DataWarehouse)技术就是在这样的背景下发展起来的。数据仓库的概念提出于20世纪80年代中期,20世纪90年代,数据仓库已从早起的探索阶段走向实用阶段。业界公认的数据仓库概念创始人W.H.Inmon在《BuildingtheDataWarehouse》一书中对数据仓库的定义是:“数据仓库是支持管理决策过程的、面向主题的、集成的、随时间变化的持久的数据集合”。构建数据仓库的过程就是根据预先设计好的逻辑模式从分布在企业内部各处的OLTP数据库中提取数据并对经过必要的变换最终形成全企业统一模式数据的过程。当前数据仓库的核心仍是RDBMS管理下的一个数据库系统。数据仓库中数据量巨大,为了提高性能,RDBMS一般也采取一些提高效率的措施:采用并行处理结构、新的数据组织、查询策略、索引技术等等。 包括联机分析处理(On-LineAnalyticalProcessing,简称OLAP)在内的诸多应用牵引驱动了数据仓库技术的出现和发展;而数据仓库技术反过来又促进了OLAP技术的发展。联机分析处理的概念最早由关系数据库之父E.F.Codd于1993年提出的。Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的要求,SQL对大数据库的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,Codd提出了多维数据库和多维分析的概念,即OLAP。OLAP委员会对联机分析处理的定义为:使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,因此OLAP也可以说是多维数据分析工具的集合。 二、联机分析处理的特点 在过去的二十年中,大量的企业利用关系型数据库来存储和管理业务数据,并建立相应的应用系统来支持日常业务运作。这种应用以支持业务处理为主要目的,被称为联机事务处理(OLTP,On-line Transaction Processing)应用,它所存储的数据被称为操作数据或者业务数据。 随着市场竞争的日趋激烈,近年来企业更加强调决策的及时性和准确性,这使得以支持决策管理分析为主要目的的应用迅速崛起,这类应用被称为联机分析处理,它所存储的数据被称为信息数据。 联机分析处理的用户是企业中的专业分析人员及管理决策人员,他们在分析业务经营的数据时,从不同的角度来审视业务的衡量指标是一种很自然的思考模式。例如分析销售数据,可能会综合时间周期、产品类别、分销渠道、地理分布、客户群类等多种因素来考量。这些分析角度虽然可以通过报表来反映,但每一个分析的角度可以生成一张报表,各个分析角度的不同组合又可以生成不同的报表,使得IT人员的工作量相当大,而且往往难以跟上管理决策人员思考的步伐。 联机分析处理的主要特点,是直接仿照用户的多角度思考模式,预先为用户组建多维的数据模型,在这里,维指的是用户的分析角度。例如对销售数据的分析,时间周期是一个维度,产品类别、分销渠道、地理分布、客户群类也分别是一个维度。一旦多维数据模型建立完成,用户可以快速地从各个分析角度获取数据,也能动态的在各个角度之间切换或者进行多角度综合分析,具有极大的分析灵活性。这也是联机分析处理在近年来被广泛关注的根本原因,它从设计理念和真正实现上都与旧有的管理信息系统有着本质的区别。 事实上,随着数据仓库理论的发展,数据仓库系统已逐步成为新型的决策管理信息系统的解决方案。数据仓库系统的核心是联机分析处理,但数据仓库包括更为广泛的内容。 -概括来说,数据仓库系统是指具有综合企业数据的能力,能够对大量企业数据进行快速和准确分析,辅助做出更好的商业决策的系统。它本身包括三部分内容: 数据层。实现对企业操作数据的抽取、转换、清洗和汇总,形成信息数据,并存储在企业级的中心信息数据库中。 应用层。通过联机分析处理,甚至是数据挖掘等应用处理,实现对信息数据的分析。 表现层。通过前台分析工具,将查询报表、统计分析、多维联机分析和数据发掘的结论展现在用户面前。 从应用角度来说,数据仓库系统除了联机分析处理外,还可以采用传统的报表,或者采用数理统计和人工智能等数据挖掘手段,涵盖的范围更广;就应用范围而言,联机分析处理往往根据用户分析的主题进行应用分割,例如:销售分析、市场推广分析、客户利润率分析等等,每一个分析的主题形成一个OLAP应用,而所有的OLAP应用实际上只是数据仓库系统的一部分。 三、OLAP逻辑概念和典型操作 OLAP展现在用户面前的是一幅幅多维视图。 维(Dimension):是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。 维的层次(Level):人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年)。 维的成员(Member):维的一个取值,是数据项在某维中位置的描述。(“某年某月某日”是在时间维上位置的描述)。 度量(Measure):多维数组的取值。(2000年1月,上海,笔记本电脑,0000)。 OLAP的基本多维分析操作有钻取(Drill-up和Drill-down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)等。 钻取:是改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)和向上钻取(Drill-up)/上卷(Roll-up)。Drill-up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill-down则相反,它从汇总数据深入到细节数据进行观察或增加新维。 切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。 旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。 四、OLAP系统的体系结构和分类 数据仓库与OLAP的关系是互补的,现代OLAP系统一般以数据仓库作为基础,即从数据仓库中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端分析工具读取。典型的OLAP系统体系结构如下图所示: OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。 1.ROLAP ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。 2.MOLAP MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP(PhysicalOLAP);而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(VirtualOLAP)。 3.HOLAP 由于MOLAP和ROLAP有着各自的优点和缺点(如下表所示),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。 rolap molap 沿用现有的关系数据库的技术 专为olap所设计 响应速度比molap慢; 现有关系型数据库已经对olap做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、sql 的olap扩展(cube,rollup)等,性能有所提高 性能好、响应速度快 数据装载速度快 数据装载速度慢 存储空间耗费小,维数没有限制 需要进行预计算,可能导致数据爆炸,维数有限;无法支持维的动态变化 借用rdbms存储数据,没有文件大小限制 受操作系统平台中文件大小的限制,难以达到tb 级(只能10~20g) 可以通过sql实现详细数据与概要数据的存储 缺乏数据模型和数据访问的标准 –不支持有关预计算的读写操作 –sql无法完成部分计算 ?无法完成多行的计算 ?无法完成维之间的计算 –支持高性能的决策支持计算 ?复杂的跨维计算 ?多用户的读写操作 ?行级的计算 维护困难 管理简便 五、联机分析处理的实现方式 同样是仿照用户的多角度思考模式,联机分析处理有三种不同的实现方法: · 关系型联机分析处理(ROLAP,Relational OLAP) · 多维联机分析处理(MOLAP,Multi-Dimensional OLAP) · 前端展示联机分析处理(Desktop OLAP) 其中,前端展示联机分析需要将所有数据下载到客户机上,然后在客户机上进行数据结构/报表格式重组,使用户能在本机实现动态分析。该方式比较灵活,然而它能够支持的数据量非常有限,严重地影响了使用的范围和效率。因此,随着时间的推移,这种方式已退居次要地位,在此不作讨论。 以下就ROLAP和MOLAP的具体实施方法进行讨论: 1、关系型联机分析处理的具体实施方法: 顾名思义,关系型联机分析处理是以关系型数据库为基础的。唯一特别之处在于联机分析处理中的数据结构组织的方式。 让我们考察一个例子,假设我们要进行产品销售的财务分析,分析的角度包括时间、产品类别、市场分布、实际发生与预算四方面内容,分析的财务指标包括:销售额、销售支出、毛利(=销售额-销售支出)、费用、纯利(=毛利-费用)等内容,则我们可以建立如下的数据结构: 该数据结构的中心是主表,里面包含了所有分析维度的外键,以及所有的财务指标,可计算推导的财务指标不计在内,我们称之为事实表(Fact Table)。周围的表分别是对应于各个分析角度的维表(Dimension Table),每个维表除了主键以外,还包含了描述和分类信息。无论原来的业务数据的数据结构为何,只要原业务数据能够整理成为以上模式,则无论业务人员据此提出任何问题,都可以用SQL语句进行表连接或汇总(table join and group by)实现数据查询和解答。(当然,有一些现成的ROLAP前端分析工具是可以自动根据以上模型生成SQL语句的)。这种模式被称为星型模式(Star-Schema),可应用于不同的联机分析处理应用中。 以下是另一个采用星型模式的例子,分析的角度和指标截然不同,但数据结构模式一样。我们看到的不是表的数据,而是表的结构。在联机分析处理的数据模型设计中,这种表达方式更为常见: 有时候,维表的定义会变得复杂,例如对产品维,既要按产品种类进行划分,对某些特殊商品,又要另外进行品牌划分,商品品牌和产品种类划分方法并不一样。因此,单张维表不是理想的解决方案,可以采用以下方式,这种数据模型实际上是星型结构的拓展,我们称之为雪花型模式(snow-flake schema). 无论采用星型模式还是雪花型模式,关系型联机分析处理都具有以下特点: · 数据结构和组织模式需要预先设计和建立; · 数据查询需要进行表连接,在查询性能测试中往往是影响速度的关键; · 数据汇总查询(例如查询某个品牌的所有产品销售额),需要进行Group by 操作,虽然实际得出的数据量很少,但查询时间变得更长; · 为了改善数据汇总查询的性能,可以建立汇总表,但汇总表的数量与用户分析的角度数目和每个角度的层次数目密切相关。例如,用户从8个角度进行分析,每个角度有3个汇总层次,则汇总表的数目高达3的8次方。 可以采取对常用汇总数据建立汇总表,对不常用的汇总数据进行Group by 操作,这样来取得性能和管理复杂度之间的均衡。 2、多维联机分析处理的具体实施方法: 多维联机分析处理实际上是用多维数组的方式对关系型数据表进行处理。下图是ROLAP与MOLAP的对比: 图中左边是ROLAP方式,右边是MOLAP方式,两者对应的是同一个三维模型。MOLAP首先对事实表中的所有外键进行排序,并将排序后的具体指标数值一一写进虚拟的多维立方体中。当然,虚拟的多维立方体只是为了便于理解而构想的,MOLAP实际的数据存储放在数据文件(Data File)中,其数据放置的顺序与虚拟的多维立方体按x,y,z坐标展开的顺序是一致的(如上图)。同时,为了数据查找的方便,MOLAP需要预先建立维度的索引,这个索引被放置在MOLAP的概要文件(Outline)中。 概要文件是MOLAP的核心,相当于ROLAP的数据模型设计。概要文件包括所有维的定义(包括复杂的维度结构)以及各个层次的数据汇总关系(例如在时间维,日汇总至月,月汇总至季,季汇总至年),这些定义往往从关系型维表中直接引入即可。概要文件也包括分析指标的定义,因此可以在概要文件中包含丰富的衍生指标,这些衍生指标由基础指标计算推导出来(例如ROLAP例子1中的纯利和毛利)。概要文件的结构如下图所示: 一旦概要文件定义好,MOLAP系统可以自动安排数据存储的方式和进行数据查询。从MOLAP的数据文件与ROLAP的事实表的对比可以看出,MOLAP的数据文件完全不需要纪录维度的外键,在维度比较多的情况下,这种数据存储方式大量地节省了空间。 但是,如果数据相当稀疏,虚拟的多维立方体中很多数值为空时,MOLAP的数据文件需要对相关的位置留空,而ROLAP的事实表却不会存储这些纪录。为了有效地解决这种情况,MOLAP采用了稀疏维和密集维相结合的处理方式,如下图。 上图的背景是某些客户只通过某些分销渠道才购买,但是只要该客户存在,他在各个月和各个地区内均有消费(例如,华南IBM只通过熊猫国旅定购南航机票,但在华南四省在每个月均有机票订购)。则时间和地区维是密集维,客户和分销渠道是稀疏维,MOLAP将稀疏维建成索引文件(Index File),密集维所对应的数值仍然保留在数据文件中,索引文件不存储空纪录。这样保持了对空间的合理利用。我们也可以看到,如果所有维都是稀疏维,则MOLAP的索引文件就退化成ROLAP的事实表, 两者没有区别了。 在实际应用中,不可能所有分析的维度都是密集的,也绝少存在所有分析的维度都是稀疏的,因此稀疏维和密集维并用的模式几乎主导了所有的MOLAP应用。而稀疏维和密集维的定义全部集中在概要文件中,因此,只要预先定义好概要文件,所有的数据分布就自动确定了。 在这种模式中,密集维的组合组成了的数据块(Data Block),每个数据块是I/O读写的基础单位(如上图),所有的数据块组成了数据文件。稀疏维的组合组成了索引文件,索引文件的每一个数据纪录的末尾都带有一个指针,指向要读写的数据块。因此,进行数据查询时,系统先搜索索引文件纪录,然后直接调用指针指向的数据块进行I/O读写(如果该数据块尚未驻留内存),将相应数据块调入内存后,根据密集维的数据放置顺序直接计算出要查询的数据距离数据块头的偏移量,直接提取数据下传到客户端。因此,MOLAP 方式基本上是索引搜索与直接寻址的查询方式相结合,比起ROLAP的表/索引搜索和表连接方式,速度要快得多。 多维联机分析处理有以下特点: · 需要预先定义概要文件; · 数据查询采用索引搜索与直接寻址的方式相结合,不需要进行表连接,在查询性能测试中比起ROLAP有相当大的优势; · 在进行数据汇总查询之前,MOLAP需要预先按概要文件中定义的数据汇总关系进行计算,这个计算通常以批处理方式运行。计算结果回存在数据文件中,当用户查询时,直接调用计算结果,速度非常快。 · 无论是数据汇总还是计算衍生数据,预先计算的方式实际上是用空间来换时间。当然,用户也可以选择动态计算的方式,用查询时间来换取存储空间。MOLAP可以灵活调整时空的取舍平衡。 · 用户难以使用概要文件中没有定义的数据汇总关系和衍生指标。 · 在大数据量环境下,关系型数据库可以达到TB级的数据量,现有的MOLAP应用局限于基于文件系统的处理和查询方式,其性能会在100GB级别开始下降,需要进行数据分区处理,因此扩展性不如ROLAP。因此,MOLAP多数用于部门级的主题分析应用。 3、其它考虑因素 联机分析处理其他要素包括假设分析(What-if),复杂计算,数据评估等等。这些因素对用户的分析效用至关重要,但是与ROLAP和MOLAP的核心工作原理的不一定有很紧密的关系,事实上,ROLAP和MOLAP都可以在以上三方面有所建树,只不过实现的方法迥异。因此,这些因素更取决于各个厂商为他们的产品提供的外延功能。对于像IBM的DB2 OLAP Server这样一个成熟的产品来说,这三方面均有独特的优势: 假设分析 假设分析提出了类似于以下的问题:"如果产品降价5%,而运费增加8%,对不同地区的分销商的进货成本会有什么影响?"这些问题常用于销售预测、费用预算分配、奖金制度确定等等。据此,用户可以分析出哪些角度、哪些因素的变化将对企业产生重要影响;并且,用户可以灵活调节自己手中掌握的资源(例如费用预算等),将它用到最有效的地方中去。 假设分析要求OLAP系统能够随用户的思路调整数据,并动态反映出在调整后对其他数据的影响结果。事实上,进入OLAP的数据分两大类:事实数据和预算数据,例如本月实际发生的销售额是事实数据,上月对本月的销售额估算是预算数据。事实数据一般情况下不容修改,而预算数据则应常常进行调整。DB2 OLAP Server通过详细的权限定义区分了数据的读写权限,允许用户对预算数据进行更改,系统可以对其他受影响的数据进行计算,以反映出"假如发生如上情况,将会引起以下结果"的结论。 复杂计算 分析人员往往需要分析复杂的衍生数据,诸如:同期对比、期初/期末余额、百分比份额计算、资源分配(按从顶向下的结构图逐级分配)、移动平均、均方差等等。对这些要求,DB2 OLAP Server提供丰富的功能函数以便用户使用。因为只有在无需编程的环境下,商业用户才能更好地灵活利用这些功能进行复杂的真实世界模拟。 数据评估 数据评估包括两方面内容,有效性评估和商业意义评估。在有效性评估方面,数据抽取、清洗和转换的规则的定义是至关重要的。而合理的数据模型设计能有效防止无效数据的进入。例如在ROLAP中,如果维表没有采用范式设计(normalise design),可能会接受如下的维表: 机构代码 机构名称 所属区县 所属城市 所属省份 001 越秀支行 越秀区 广州 广东 002 祖庙支行 佛山 广州 广东 003 翠屏支行 佛山 南海 广东 004 。。。 。。。 。。。 。。。 显然,002中显示的佛山属于广州市,与003中显示的佛山属于南海市是矛盾的。这显示出数据源有问题,但是如果采用星型模式设计,ROLAP无法自动发现数据源的问题! 在类似情况下,MOLAP的表现稍占优势。因为MOLAP需要预先定义概要文件,而概要文件会详细分析维度的层次关系,因此生成概要文件时会反映数据源的错误。因此,在DB2 OLAP Server中,记录003会被拒收,并纪录在出错日志中,供IT人员更正。 但是,OLAP对数据源有效性的验证能力毕竟是有限的,因此,数据有效性必须从源数据一级和数据抽取/清洗/转换处理一级来进行保障。 对用户而言,数据的商业含义评估更有意义。在商业活动中,指标数值的取值范围是比较稳定的,如果指标数值突然发生变化,或者在同期比较、同类比较中有特殊表现,意味着该指标代表的方方面面具有特别的分析意义。普通的OLAP往往需要用户自己去观察发现异常指标,而DB2 OLAP Server的OLAP Minor(多维数据挖掘功能)能为用户特别地指出哪些条件下的哪些指标偏离常值,从而引起用户的注意和思考。例如:12月份南部的圣诞礼品销售额不到同期类似区域(东部、中部、西部)的50%。 综上所述,无论ROLAP还是MOLAP,都能够实现联机分析处理的基本功能,两者在查询效率,存储空间和扩展性方面各有千秋。IT人员在选择OLAP系统时,既要考虑产品内部的实现机制,同时也应考虑假设分析,复杂计算,数据评估方面的功能,为实现决策管理信息系统打下坚实的基础。 六、主要OLAP厂商产品介绍 Hyperion HyperionEssbaseOLAPServer,在上面有超过100个的应用程序,有300多个用Essbase作为平台的开发商。具有几百个计算公式,支持过程的脚本预言,及统计和基于维的计算。 强大的OLAP查询能力,利用EssbaseQueryDesigner,商业用户可以不用IT人员的帮助自己构件复杂的查询。 广泛的应用支持,可以扩展数据仓库和ERP系统的价值,建立对电子商务、CRM、金融、制造业、零售和CPG(consumerpackagedgoods)等应用的分析程序。 Speed-of-Thought的响应时间,支持多用户同时读写 Web-Enabled的,以服务器为中心的体系结构,支持SMP 强大的合作伙伴提供完整的解决方案,60多个包装好的解决方案,300多个咨询和实施公司。 丰富的前端工具,有30多个前端工具可供选择,其中包括Hyperion自己的WiredforOLAP、Spider-ManWebApplication、Objects、EssbaseSpreadsheetAdd-In、WebGateway、Reporting。 HyperionEnterprise,为跨国公司提供的财务整合、报告和分析的解决方案。有3000多家组织在使用此套系统。 功能丰富:支持多种财务标准USGAAP,CanadianGAAP,UKGAAP,国际会计标准(ISA),FASB,HGB。分公司间交易的自动平帐。FAS52货币转换。FAS94。 易用:可通过Excel,Lotus1-2-3和各种浏览器访问系统。 支持公司结构的调整。 跨国公司的支持:同时支持6种语言及各个不同国家的法律和税收要求。 完整的过程控制和审计跟踪,及安全等级的设置。 能与ERP或其他数据源集成 HyperionPillar,预算和计划工具。全球用户超过1500家,提供基于活动的预算,基于项目的计划,集中式计划,销售预测和综合计划。 分布式体系结构 详细计划的制订:允许一线经理制订详细的计划 复杂的建模和分析能力 Oracle ExpressServer提供全面的OLAP能力,有全球超过3000家用户 用户可通过Web和电子表格使用 灵活的数据组织方式,数据可以存放在ExpressServer内,也可直接在RDB上使用 有内建的分析函数和4GL来用户自己定制查询 Cognos PowerPlay,为商务效率评价BPM(BusinessPerformanceMeasurement)提供全面的报告和分析环境。向决策者提供企业运行效率的各种关键数据,进行各种各样的分析。 只用鼠标点击、拖拉就可以浏览多维数据 自动利用Web发布得到的分析报告 支持多种OLAPServer:MicrosoftOLAPServices、HyperionEssbase、SAPBW、IBMOLAPforDB2 完备的授权和安全体系 NovaView,是MicrosoftSQLServer7.0OLAPServices的客户端应用程序。 MicroStrategy MicroStrategy7,是新一代的智能平台(IntelligencePlatform)面向电子商务应用e-business和电子客户关系管理eCRM。 具有强大的分析能力 以Web为中心的界面 支持上百万的用户和TB的数据 快速开发能力,可直接利用已有的数据模式 IntelligenceServer,Oneforallanalyticapplications Microsoft SQLServer7.0OLAPServices,是SQLServer7.0的OLAP模块,可以使用任何关系数据库或平面文件作为数据源,其中的PivotTableService提供了客户端的数据缓存和计算能力。 智能的Client/Server数据管理,提高响应速度,降低网络流量 通过OLEDBforOLAP,允许不同的客户端访问 BusinessObjects BusinessObjects,是易用的BI工具,允许用户存取、分析和共享数据。 可应用多种数据源:RDB,ERP,OLAP,Excel等 可应用VBA和开放式对象模型来进行开发定制 IBM DB2OLAPServer,是强大的多维分析工具,把HyperionEssbase的OLAP引擎和DB2的关系数据库集成在一起。 与EssbaseAPI完全兼容 数据用星型模型存放在关系数据库DB2中 Brio Brio.Enterprise,是强大的易用的BI工具,提供查询,OLAP分析和报告的能力 支持多种语言,包括中文 Brio.Report,强大的企业级报告工具 OLAP相关标准 APB-1OLAPBenchmarkReleaseII(SPONSOREDBYOLAPCOUNCIL) |