OLAP

联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。

其中F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部 分,并以用户所希望的方式给出报告;M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;I是信息性(Information),指能及时获得信息,并且管理大容量信息。

逻辑概念编辑

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(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。

ROLAP

ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。

不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。

同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。

MOLAP

MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。

由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP(PhysicalOLAP);而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(VirtualOLAP)。

HOLAP

由于MOLAP和ROLAP有着各自的优点和缺点(如下表所示),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。

为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。

迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。

基本功能

切片和切块(Slice and Dice)

切片和切块是在维上做投影操作。

切片就是在多维数据上选定一个二维子集的操作,即在某两个维上取一定区间的维成员或全部维成员,而在其余的维上选定一个维成员的操作。

维是观察数据的角度,那么切片的作用或结果就是舍弃一些观察角度,使人们能在两个维上集中观察数据。因为人的空间想象能力毕竟有限,一般很难想象四维以上的空间结构,所以对于维数较多的多维数据空间,数据切片是十分有意义的.

钻取(Drill)

钻取有向下钻取(Drill Down)和向上钻取(Drill up)操作。向下钻取是使用户在多层数据中展现渐增的细节层次,获得更多的细节性数据。

向上钻取以渐增概括方式汇总数据(例如,从周到季度,再到年度)。

旋转(Pivoting)

通过旋转可以得到不同视角的数据。旋转操作相当于在平面内将坐标轴旋转。

例如,旋转可能包含了交换行和列,或是把某一个行维移到列维中去,或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列中的一个)。

广义功能

从广义上讲,任何能够有助于辅助用户理解数据的技术或者操作都可以作为OLAP功能,这些有别于基本OLAP的功能被称为广义OLAP功能。

基本代理操作

“代理”是一些智能性代理,当系统处于某种特殊状态时提醒分析员。

  1. 示警报告:定义一些条件,一旦条件满足,系统会提醒分析员去做分析。如每日报告完成或月订货完成等通知分析员作分析。

  2. 时间报告:按日历和时钟提醒分析员。

  3. 异常报告:当超出边界条件时提醒分析员。如销售情况已超出预定义阈值的上限或下限时提醒分析员。

计算能力

计算引擎用于特定需求的计算或某种复杂计算。

模型计算

增加模型,如增加系统优化、统计分析、趋势分析等模型,以提高决策分析能力。

拓展阅读

OLTP 与 OLAP

数据仓库

相关引擎

Mondrian

Druid

参考资料

联机分析处理

OLAP、OLTP的介绍和比较

OLAP了解与OLAP引擎——Mondrian入门

网站数据分析

OLAP 概念