写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

OLAP有多种实现方法,根据存储数据的方式不同可以分为 ROLAP、 MOLAP、 HOLAP。

1. ROLAP

ROLAP 表示基于关系型数据库的OLAP实现(Relational OLAP)以关系型数据库为核心,以关系型结构进行多维数据的表示和存储。

ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一张表来存放维的层次、成员类別等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星形模式”。

对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多张表来描述,这种星形模式的扩展称为“雪花模式”。其特点是将细节数据保留在关系型数据库的事实表中,聚合后的数据也保存在关系型数据库中。这种方式査询效率最低,不推荐使用。

2. MOLAP

MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。

以多维数据组织方式为核心,也就是说, MOLAP使用多维数组存储数据。

多维数据在存储中将形成“立方块Cube”的结构,在 MOLAP中对“立方块”的“旋转”、“切块”、“切片”是产生多维数据报表的主要技术。

其特点是将细节数据和聚合后的数据均保存在Cube中,所以以空间换效率,查询时效率高,但生成Cube时需要大量的时间和空间。

3. HOLAP

HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)如低层是关系型的,高层是多维矩阵型的。

这种方式具有更好的灵活性。

其特点是将细节数据保留在关系型数据库的事实表中, 但是聚合后的数据保存在Cube中,聚合时需要比ROLAP更多的时间,查询效率比ROLAP高,但低于MOLAP。

补充

OLAP

可以参考我的这篇博客——

事实表和维表

可以参考我的这篇博客——

Q.E.D.


Apache Spark Contributor