第二篇: 模式分类

主要有:维度建模、范式建模、Data Vault模型、Anchor模型
维度模型    企业中最流行也是最经典的数仓建模经典。按数据组织类型划分可分为星型模型、雪花模型、星座模型。
范式模型    即实体关系(ER)模型,数据仓库之父Immon提出的,从全企业的高度设计一个3NF模型,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF。此建模方法,对建模人员的能力要求非常高。
Data Vault模型    DataVault由Hub(关键核心业务实体)、Link(关系)、Satellite(实体属性) 三部分组成 ,是Dan Linstedt发起创建的一种模型方法论,它是在ER关系模型上的衍生,同时设计的出发点也是为了实现数据的整合,并非为数据决策分析直接使用。
Anchor模型    高度可扩展的模型,所有的扩展只是添加而不是修改,因此它将模型规范到6NF,基本变成了K-V结构模型。企业很少使用,不多做介绍。


维度模型和关系模型

Kimball(维度模型)和Inmon(ER模型)是目前两种最主流的建模方法

维度建模法,由Kimball 最先提出这一概念。其最简单的描述就是:按照事实表、维表来构建数据仓库和数据集市
范式建模法其实是我们在构建数据模型常用的一个方法,该方法的主要由Inmon 所提倡,主要解决关系型数据库得数据存储
范式建模:设计思路自上而下,适合上游基础数据存储,同一份数据只存储一份,没有数据冗余,方便解耦,易维护,缺点是开发周期一般比较长,维护成本高
维度建模:设计思路是自下而上,适合下游应用数据存储,适合统计多层次维度的汇总,开发周期短,缺点是维护成本高
其中多维模型最典型的数据模式包括星型模式、雪花模式和星座(系)模式

 

星型模式(star schema)

星型模式的核心是一个大的中心表(事实表),一组小的附属表(维表)。所有维度直接关联在事实表上,且维度表之间无关联关系,呈星型分布。星型模式如下所示

 

雪花模式(snowflake schema)

在星型模型的基础上,维度表上又关联了其他维度表。这种模型维护成本高,性能方面也较差,所以一般不建议使用。尤其在基于hadoop体系构建数仓,减少join就能减少中间shuffle过程,job性能表现差异会很大。如下图所示

 

星座模式(Fact Constellation)或星系模式(galaxy schema)

星座模型,是对星型模型的扩展延伸,多张事实表共享维度表。这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。如下图所示:

 

三种数据模式对比

星型模型和雪花模型的优劣对比:

 

三种数据模三种数据模式对比式对比

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章