优点:
维度建模同时满足(1)以商业用户可理解的方式发布数据;(2)提供高效的查询性能。这两大需求。
1、便于理解
按照事实表、维度表来构建数据仓库、数据集市。在维度建模方法体系中,维度是描述事实的角度,如日期、地址、商品等,事实是要度量的指标,如骑手数、完成单量等。
维度建模是将层次化的数据结构展开为单一层次,构建出来的数据库结构表更加符合人的直觉、易于被人所理解,从而有利于数据的推广使用。
2、快速的响应业务
面向分析构建的,每次不需要编写冗长的SQL,查询大宽表,减少join,方便分析人员和业务人员(不太懂技术,不会写复杂SQL)使用,能快速的响应业务需求。
3、标准框架
数据仓库工具数,定义了业界广泛理解的概念。
新员工可以快速的掌握数仓的结构,不需要熟悉具体的业务系统数据。工程师和分析师对事实、维度、粒度这些概念都比较了解,可以促进协作。
缺点:
1、数据预处理开销和数据冗余
由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。而在这些与处理过程中,往往会导致大量的数据冗余。
2、一致性维度发生变化,每个主题表都要同步相关维度,对模型冲击比较大,相比范式建模扩展性不好。
3、如果只是依靠单纯的维度建模, 不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。
在建设数据仓库的过程中,明细层和集市层分别采用不同的建模方法,比如:
明细层采用传统的三范式关系模型:将业务过程描述清楚,将源数据(即业务系统)中隐含的、有歧义的概念进行清晰化。此层灵活地表达业务过程,要保证数据一致性、唯一性、正确性,以尽量少的代价与源数据保持数据同步。(面向技术人员)
集市层采用维度模型。集市层是按照业务主题、分主题构建出来的、面向特定部门或人员的数据集合,该层次的数据模型会开放给业务人员使用,进行数据挖掘及业务分析。(面向不懂技术的业务人员,需要简单易理解)