首页 > 代码库 > 浅析ROLAP和MOLAP优劣
浅析ROLAP和MOLAP优劣
在OLAP技术文档中,有两种主要的类型经常被提及,即Multidimensional OLAP (MOLAP)和Relational OLAP (ROLAP),并且为了结合优势,在两者的基础上提出了一种新的类型Hybrid OLAP (HOLAP),即混合OLAP技术。从技术角度来说,ROLAP(MicroStrategy实现)和MOLAP(Cognos等实现)各有千秋。前者基于关系型数据库,它的OLAP引擎就是将用户的OLAP操作,如上钻下钻过滤合并等,转换成SQL语句提交到数据库中执行,并且提供聚集导航功能,根据用户操作的维度和度量将SQL查询定位到最粗粒度的事实表上去。相比而言,MOLAP事先将汇总数据计算好,存放在自己特定的多维数据库中,用户的OLAP操作可以直接映射到多维数据库的访问,不通过SQL访问。因此,两者的区别也可以说是ROLAP提供了更大的灵活度,MOLAP提供了更加快速的相应速度。
MOLAP
作为最常用的一种OLAP分析方式,在MOLAP中,数据存储在多维立方体中,并多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成“立方块(Cube)”的结构,在MOLAP中对“立方块”的“旋转”、“切块”、“切片”是产生多维数据报表的主要技术。
优势:
卓越的性能:MOLAP CUBE能提供快速的数据检索查询,并能提供最优的切片、旋转、切块等操作。
可以进行复杂的计算:在MOLAP中所有的计算提前在生成CUBE时就被提前处理。因此,MOLAP不光能进行复杂的计算而且速度很快速。
劣势:
只能处理有限的数据:因为所有的计算在CUBE被生成时变被处理,所以在CUBE中不可能包含大量的数据,但这并意味CUBE中的数据不能处理大量的数据,只是不能将所有的数据都包含在CUBE中。但因为这种限制,所以只有summary-level(概要类)的信息才能被包含在CUBE中。
需要额外的投入:因为CUBE技术通常通常是私有的,因此使用MOLAP是可能会遇到人力资源和财务等成本的增加。
ROLAP
这种方式采用依靠在关系型数据库(relational database)引擎提供切片、上钻、下钻等功能,每个切片或上钻的操作都会被转换成SQL语句提交到数据库中执行。
优势:
可以处理大量的数据:因为ROLAP技术依赖与关系数据库,因此它的数据都存放在关系数据库中,所以它不会存在数据存放空间的限制。
可以使用关系型数据库自身的函数:因为ROLAP技术架构在关系型数据库之上,所以它能很方便的使用这些函数。
劣势:
性能不高:因为ROLAP技术的本质是在关系型数据库中进行SQL 查询或者multiple SQL查询,所以当数据量很大时返回结果的时间可能会很慢。
被SQL规范限制:因为ROLAP技术主要是依赖生成SQL语句在关系型数据库中查询实现,但SQL语句不能适用于所以需求,例如,使用SQL语句进行汇总计算就比较困难。
HOLAP
HOLAP 技术是结合MOLAP和ROLAP两种技术的优点。针对概要类型的数据,HOLAP采用CUBE技术提供更快的性能。当需要查询大量详细信息时,HOLAP又可以“穿透”(drill through)CUBE 进入CUBE下面的相关数据。