联机分析(OLAP)是由关系数据库之父E.F.Codd于1993年提出的一种数据动态分析模型,它允许以一种称为多维数据集的多维结构访问来自商业数据源的经过聚合和组织整理的数据。以此为标准,OLAP作为单独的一类产品同联机事务处理(OLTP)得以明显区分。
OLAP最基本的概念其实只有三个:多维观察、数据钻取、CUBE运算,除此以外,OLAP通常包括的功能包括数据旋转、数据切片,以及对数据进行跨行列运算。
多维观察
在平时工作中,会遇到各种问题,在分析问题的时候,同样的现象,我们会从多个角度去分析考虑,并且有时候我们还会从几个角度综合起来进行分析。这就是OLAP分析最基本的概念:从多个观察角度的灵活组合来观察数据,从而发现数据内在规律。https://zhuanlan.zhihu.com/p/38767561
数据钻取
在分析过程中,我们可能需要在现有数据基础上,将数据进一步细化,以获得更为精确的认识。这就是OLAP中数据钻取的概念。
CUBE运算
一个OLAP模型中,度量数据和维数据我们应该实现确定,一旦两者确定下来,那么我们可以对数据进行预先的处理,在正式发布之前,将数据根据维进行最大限度的聚类运算,运算中会考虑到各种维组合情况,运算结果将生成一个数据CUBE,并保存在服务器上。这样,当最终用户在调阅这个分析模型的时候,就可以直接使用这个CUBE,在此基础上根据用户的维选择和维组合进行复运算,从而达到实时响应的这么一个效果。
OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。
图片来自:https://zhuanlan.zhihu.com/p/38767561
ROLAP
ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。
MOLAP
MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。
HOLAP
由于MOLAP和ROLAP有着各自的优点和缺点(如下表所示),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。
这篇博客(图表来自)里面对不同的类型差异列了一个表格
| 优势 | 缺点 |
ROLAP | 没有大小限制 | 一般比MDD响应速度慢 |
MOLAP | 性能好、响应速度快 | 增加系统复杂度,增加系统培训与维护费用 |
HOLAP | 基于混合数据组织的OLAP实现,如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活。holap结构不应该是molap与rolap结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。 | 迄今为止,对holap还没有一个正式的定义 |
参考:
https://blog.youkuaiyun.com/dufufd/article/details/78621158