OLAP 简介(下) (数据仓库基础)

五、联机分析处理的实现方式

同样是仿照用户的多角度思考模式,联机分析处理有三种不同的实现方法:

· 关系型联机分析处理(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越秀支行越秀区广州广东
image
002祖庙支行佛山广州广东
image
003翠屏支行佛山南海广东
image
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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值