数仓建模十大主题


在数据仓库搭建的过程中,选择合适的数据模型是至关重要的一个环节。关于数仓建模,人们有时会认为只是简单的建表,然而实际上并非如此。今天的大数据开发分享,让我们一起探讨数仓建模中常见的几种数据模型。

目前市场上主流的数据建模主要包括四种类型:维度模型、范式模型、Data Vault模型以及Anchor模型。

维度模型在互联网行业领域有着广泛的应用。按照数据类型,维度建模可以进一步划分为星型模型、雪花模型以及星座模型。

星型模型主要由维表和事实表构成,以事实表为中心,所有维度直接关联在事实表上,呈现出星型分布的特点。

雪花模型则是在星型模型的基础上,维度表上进一步关联了其他维度表。不过需要注意的是,由于雪花模型的维护成本较高且性能方面相对较差,因此在某些情况下并不推荐使用。特别是在基于hadoop体系构建数仓时,减少join操作对于提高性能至关重要。星型模型可以理解为一个事实表关联多个维度表,而雪花模型则可以理解为一个事实表关联多个维度表,这些维度表再进一步关联其他维度表。

星座模型则是星型模型的扩展延伸,多张事实表共享维度表。在实际情况中,很多数据仓库都包含多个事实表,因此星座模型反映了这种结构。

范式模型,也被称作实体关系(ER)模型,由数据仓库之父Immon提出。该模型从全企业的高度设计一个3NF模型,用实体加关系描述的数据模型来描绘企业业务架构。范式建模的典型特点是自上而下,适合上游基础数据存储。它的优点是同一份数据只存储一份,没有数据冗余,方便解耦和易维护。其缺点在于开发周期一般较长且维护成本较高。

Data Vault模型由Hub(关键核心业务实体)、Link(关系)、Satellite(实体属性)三部分组成。它是Dan Linstedt发起创建的一种模型方法论,是在ER关系模型上的衍生。它的设计出发点是为了实现数据的整合而非直接用于数据决策分析。