写在前面
本文隶属于专栏《大数据从 0 到 1》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和文献引用请见《大数据从 0 到 1》
解答
OLAP有多种实现方法,根据存储数据的方式不同可以分为 ROLAP、 MOLAP、 HOLAP。
- ROLAP
ROLAP 表示基于关系型数据库的OLAP实现(Relational OLAP)以关系型数据库为核心,以关系型结构进行多维数据的表示和存储。
ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一张表来存放维的层次、成员类別等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星形模式”。
对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多张表来描述,这种星形模式的扩展称为“雪花模式”。其特点是将细节数据保留在关系型数据库的事实表中,聚合后的数据也保存在关系型数据库中。这种方式査询效率最低,不推荐使用。
- MOLAP
MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。
以多维数据组织方式为核心,也就是说, MOLAP使用多维数组存储数据。
多维数据在存储中将形成“立方块Cube”的结构,在 MOLAP中对“立方块”的“旋转”、“切块”、“切片”是产生多维数据报表的主要技术。
其特点是将细节数据和聚合后的数据均保存在Cube中,所以以空间换效率,查询时效率高,但生成Cube时需要大量的时间和空间。
- HOLAP
HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)如低层是关系型的,高层是多维矩阵型的。
这种方式具有更好的灵活性。
其特点是将细节数据保留在关系型数据库的事实表中, 但是聚合后的数据保存在Cube中,聚合时需要比ROLAP更多的时间,查询效率比ROLAP高,但低于MOLAP。
补充
OLAP
可以参考我的这篇博客——OLTP和OLAP的区别?
Cube
可以参考我的这篇博客——Cube技术是什么?
事实表和维表
可以参考我的这篇博客——什么是事实表和维度表?