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之间的比较。
|