一、概述
- OLAP & OLTP
大数据处理大致为成两大类: 联机事务处理OLTP(on-line transaction processing) 、联机分析处理 OLAP(on-line Analytical Processing)。OLTP 是传统的关系性数据库的主要应用,主要是基本的、日常的事物处理,列如银行交易; 通俗的将就是多数据库的增删改查。OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并提供直观易懂的查询结果。通俗的讲就是对数据按照不同的维度的聚合,维度的上钻、下卷等。
- 什么是多维分析
多维分析就是一个数据分析过程,在此过程中,将数据分为两类:维度(dimensions)和度量(metrics)
维度:维度指能够描述某个空间中所有点的最少坐标(coordinate)数,即空间基数;维度一般包括字段值为字符类或者字段基数值较少且作为约束条件的离散数值类型
度量:一般包括基数值较大且可以参与运算的数值类字段,一般也称为指标。
二、OLAP
- OLAP: 通过将维度(分析角度)拆分出来形成维度表,然后跟基于事务交易的记录事实表进行关联,形成多维度的星型或者雪花模型。在进行数据分析时,想基于哪个维度来统计查询,就将该维度表与事实表简单关联即可。
OLAP可以看作是广义上商业智能BI 系统的一部分,而传统的OLAP分析应用包含了关系型数据库、商业报告以及数据挖掘等方面
三、数据多维操作
下面介绍数据立方体中最常见的五大操作:切片,切块,旋转,上卷,下钻。

下钻:(Drill-down)
在维度不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,
上卷
下钻的逆操作,从细粒度数据往高层聚合,比如说将上海、江苏、浙江的数据进行汇总来查看江浙沪的数据
切片
选择多维度中特别的维度进行分析,比如只选择电子产品维度数据
切块
选择维中特定区间的数据或者某批特定值进行分析,比如选择2010年第一季度到2010年第二季度的销售数据,或者是电子产品和日用品的销售数据。
旋转
即维的位置的互换,就像是二维表的行列转换,如图中通过旋转实现产品维和地域维的互换。四、OLAP的两个主要概念
OLAP Cube
OLAP Cube 通俗来说就是(数据立方体)的概念,OLAP Cube 可以简单的描述为”多维数据集”,cube,可以想象成数据指标根据多个维度封装成的一个立方体结构。立方体中三个坐标就可以看作是OLAP分析的维度
OLAP 维度模型
- 多维数据模型就是一种非常适合OLAP的模型,通过将维度(分析角度)拆分出来形成维度表,然后跟基于事务交易的记录事实表进行关联,形成多维度的星型或者雪花模型
五、OLAP 与OLTP的区别
六、OLAP 分类
常见的OLAP系统可以分为以下三类:关系型联机实时分析系统(Relational-OLAP,ROLAP),多维联机实时分析系统(Multidimensional-OLAP,MOLAP),混合型联机实时分析系统(Hybrid-OLAP,HOLAP)。
1.5.1 关系型联机实时分析(ROLAP)
ROLAP的核心依赖于关系型数据库,允许用户使用维度模型进行数据分析,将维度值存储在维度表中,将度量值存储在事实表中,通过关系型数据库访问数据,使用SQL进行查询分析。ROLAP的一般使用模式概括如下:根据用户的需求,对不同维度进行分析后,将分析数据导入到另一张数据库表中。
ROLAP的优势:
(1)处理高基数列具有更好的扩展性;
(2)擅长处理非聚合类的原始数据,生态圈内用于原始数据入库的ETL工具众多,同时比MOLAP入库速率更高;
(3)由于数据存储在关系型数据库中,所以支持标准SQL接口,查询便捷;
ROLAP的劣势:
(1)根据OLAP survey(http://www.olapreport.com/survey.htm)在2001-2006年连续6年的调研显示,工业界普遍认为ROLAP的性能要低于MOLAP。但也有人提出质疑,争议包含两方面:ROLAP的用户数是MOLAP的7倍多,那么抱怨产品性能差的比例自然更高;其他因素的影响,上述调研报告并没有将ROLAP产品和MOLAP产品放在同一个维度模型上进行比较,所以该报告结论并不具有权威性;
(2)处理已聚合的数据,需要使用定制的ETL工具,开发量大且不具有通用性;如果采用原始数据入库,将非常影响查询性能,如果想要提升查询性能,需要将已入库的原始数据重新聚合后再导入到新的表中进行查询分析;
(3)ROLAP的性能很大程度上依赖于使用的关系型数据库的查询与缓存性能;同时对于所有分析操作,都依赖于SQL语句,对于重计算类的分析模型,转换后的SQL就会变得复杂,对分析者的SQL语句的调优要求较高,而在某些无法使用SQL的场景下,ROLAP类产品则变得无能为力。
1.5.2 多维联机实时分析(MOLAP)
MOLAP是OLAP的经典使用模式,所以经常用MOLAP来指代OLAP。MOLAP和ROLAP具有一定的相似性,二者都可以使用维度模型进行数据分析,但是MOLAP并不将数据存储在维度表或者事实表中,而是对原始数据进行预计算(比如聚合操作),将计算结果存储在OLAP cube中。
MOLAP的优势:
(1)由于MOLAP不采用关系型数据库进行数据存储,所以必须采用特殊的存储手段,例如:压缩存储、索引(例如位图索引)以及缓存技术等,查询速率更快;
MOLAP的劣势:
(1)数据导入较慢,需要使用定制的ETL入库工具;
(2)由于没有维度表和事实表,所以对于更新操作以及明细查询,效率要比ROLAP低很多。
1.5.3 混合型联机实时分析(HOLAP)
HOLAP充分利用了ROLAP与MOLAP的各自优势,从纵向角度,既允许用户将部分数据(比如聚合类数据)使用MOLAP进行存储,从而获得更快的查询性能;又允许部分数据(比如原始数据)使用ROLAP进行存储,使用户能够查看细粒度数据。从横向角度,使用MOLAP存储最近较热的数据,从而提升查询性能;而使用ROLAP存储历史较冷的数据。
目前,商业类的OLAP产品更偏向于HOLAP,因为大厂既不想丢弃一直使用的关系型数据库,又想在数据分析能力上获得进一步提升,所以HOLAP类产品近几年也是百花齐放。
