作者:finedatalink
发布时间:2023.8.7
阅读次数:287 次浏览
ROLAP(Relational Online Analytical Processing)系统和MOLAP(Multidimensional Online Analytical Processing)系统是两种常见的数据仓库建模方法。
下表是ROLAP、MOLAP和HOLAP的对比,更多内容可以参见文章《扫盲系列(6):数据仓库之OLTP&OLAP系统建模方法》。
ROLAP、MOLAP、HOLAP的对比表
那么今天来详解ROLAP系统和MOLAP系统的建模方法。
ROLAP(Relational Online Analytical Processing)是一种基于关系型数据库的OLAP系统,在ROLAP系统中,数据存储在关系型数据库中,分析时直接从数据库中读取数据进行计算和分析。
典型的数据仓库建模方法有ER模型、维度模型、Data Value、Anchor。ER模型、Data Value和Anchor更适合比较成熟的数据仓库和传统行业,而互联网行业的业务变动比较频繁,一般选择维度模型。所以ROLAP系统建模方法通常采用维度模型,因为维度模型适用于各种类型的数据,包括大量的数据、多个事实表、多个维度以及变化频繁的业务需求。
ROLAP系统的建模过程需要根据实际业务需求进行设计,以确保ROLAP系统能够达到预期数据分析的目的。
典型的数仓建模方法
维度模型是数据仓库常用的建模方式,通过将数据分为事实表和维度表,并将维度表用于对事实表进行分类与聚合,从而实现多维分析,帮助用户更好地理解数据。维度是对事实的一种组织,一般包含分类、时间、地域等。
维度分析
而在实际实现维度模型时,常用的建模方式有以下三种:
1. 星型模型:优点是结构简单,容易理解,同时查询和分析性能有较好的表现,适用于小型数据仓库以及查询频率较高的分析场景。缺点是标准的星型模型只有一层维度,对数据的粒度比较固定,不太适用于灵活性要求较高的业务需求。
星型模型
2. 雪花模型:相对于星型模型,具有更多的维度层次,更加灵活,能够满足更加复杂的业务需求,适用于大型数据仓库以及需要更高灵活性的分析场景。但相对于星型模型,雪花模型查询和分析的性能会稍微有所下降。
雪花模型
3. 星座模型:相对于前两种模型更加适用于大型数据仓库以及业务增长较快的场景,在建模时通常基于多个事实表,事实表之间共享维度表,因此具有较高的灵活性,但其查询和分析性能相对于星型模型和雪花模型较差。
星座模型
维度模型的建模方式需根据具体的业务情况进行选择,以达到更好的数据分析效果。
宽表模型是一种基于冗余数据的数据模型。它是维度模型的一种衍生,通过将维度信息冗余到事实表中,形成一个扁平化的、具有冗余维度的宽表。
在宽表模型中,每行数据存储了所有事实以及和其关联的维度信息,这样就避免了多个表之间的join操作,从而大大提高了查询性能,尤其适用于基于OLAP场景的数据仓库。此外,由于维度信息已经冗余到事实表中,因此也增加了访问统计和数据分析的便利性和灵活性。
宽表模型通常适用于join性能较差的数据仓库产品,适用于需要快速查询和计算聚合数据的场景,对于分析类数据和OLAP应用的效果较好。在数据仓库建设过程中,宽表模型可以作为实现维度冗余和降低查询成本的一种有效方式,可以在DWD层或DDS层完成此类工作,产品面向于DWS层(数据仓库架构的有关内容可参见文章《扫盲系列(3):数据仓库架构详解》)。
宽表模型
MOLAP(Multidimensional Online Analytical Processing)是一种将数据进行多维预处理的OLAP技术,它通过将数据进行预结算,并将聚合结果存储到CUBE模型中,以多维数组的形式物化到存储系统中,从而加快后续查询。
在MOLAP系统中,CUBE模型是关键部分,它由N维数组组成,每个维度表示一个维度属性,每个数组元素包含了对应维度属性上的所有度量值,每个数组元素都是一个聚合结果。MOLAP系统根据查询所需的维度和度量值,从多维数组中抽取查询数据,以实现多维分析。
在实现MOLAP系统时,数据预处理和CUBE模型生成是非常重要的环节,通常需要进行大量的时间和空间的预分析和预处理,从而形成CUBE模型以提高后续数据分析查询的效果。但是,预处理会导致数据膨胀并增加维度预处理的成本。因此,在MOLAP系统设计中,需要对维度的选择、聚合函数的选择、CUBE模型的层次结构等方面进行优化,以便获得更好的系统性能。
MOLAP的CUBE模型
常见的MOLAP产品有Kylin和Druid等,它们都是开源的、高性能的、分布式的、支持大数据的OLAP引擎。其中Kylin专注于支持SQL和Hadoop技术栈,而Druid则面向更多的是时空数据库。它们是ADS层中常用的OLAP技术之一(数据仓库架构的有关内容可参见文章《扫盲系列(3):数据仓库架构详解》)。
FineDataLink是一款低代码/高效率的ETL工具,同时也是一款数据集成工具,它可以帮助企业快速构建数据仓库,进行数据管理、数据分析和使用,通过构建多维数据模型,支持海量数据的 OLAP 分析和处理,针对OLAP场景提供了全方位的数据管理和分析解决方案。同时,帆软FDL也支持开放API和服务接口,可以与其他数据工具和系统进行整合和拓展。
数据集成平台产品更多介绍:www.finedatalink.com