当前位置: 首页 > 数据库开发 > 原创 一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)

原创 一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)

时间:2021-01-04 22:48来源:未知 点击:
分享到:

写在前面

不了解数据仓库的人,可能会说:"数仓嘛,不就是建表吗?",每每听到就很生气,但是我不能骂他,我要有理有据的shui服他。 所以本篇先介绍数仓模型,后续还有规范设计,事实表、维度表设计等相关文章,告诉他,我们是专业滴,我们建表过程是有方法论作为依据,结合具体场景进行考量的 !!!

系列文章详见「数仓系列文章- 传送门

一、为什么要进行数据仓库建模?

  • 性能:良好的模型能帮我们快速查询需要的数据,减少数据的IO吞吐
  • 成本:减少数据冗余、计算结果复用、从而降低存储和计算成本
  • 效率:改善用户使用数据的体验,提高使用数据的效率
  • 改善统计口径的不一致性,减少数据计算错误的可能性

二、四种常见模型

2.1 维度模型

维度建模按数据组织类型划分可分为星型模型、雪花模型、星座模型。

Kimball老爷爷维度建模四部曲:

选择业务处理过程 > 定义粒度 > 选择维度 > 确定事实

2.1.1 星型模型

星型模型主要是维表和事实表,以事实表为中心,所有维度直接关联在事实表上,呈星型分布。

 

2.1.2 雪花模型

雪花模型,在星型模型的基础上,维度表上又关联了其他维度表。这种模型维护成本高,性能方面也较差,所以一般不建议使用。尤其是基于hadoop体系构建数仓,减少join就是减少shuffle,性能差距会很大。

星型模型可以理解为,一个事实表关联多个维度表,雪花模型可以理解为一个事实表关联多个维度表,维度表再关联维度表。

2.1.3 星座模型

星座模型,是对星型模型的扩展延伸,多张事实表共享维度表。

星座模型是很多数据仓库的常态,因为很多数据仓库都是多个事实表的。所以星座模型只反映是否有多个事实表,他们之间是否共享一些维度表。

2.2 范式模型

即实体关系(ER)模型,数据仓库之父Immon提出的,从全企业的高度设计一个3NF模型,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF。此建模方法,对建模人员的能力要求非常高。

特点:设计思路自上而下,适合上游基础数据存储,同一份数据只存储一份,没有数据冗余,方便解耦,易维护,缺点是开发周期一般比较长,维护成本高。

详见:https://blog.csdn.net/weixin_39032019/article/details/89379482

2.3 Data Vault模型

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

2.4 Anchor模型

高度可扩展的模型,所有的扩展只是添加而不是修改,因此它将模型规范到6NF,基本变成了K-V结构模型。企业很少使用。

小编有话

  • 在传统企业数仓中,业务相对稳定,以范式建模为主。 如电信、金融行业等
  • 在互联网公司,业务变化快,需求来来回回的改,计算和存储也不是问题,我们更关心快速便捷的满足业务需求,所以以维度建模为主。

 

数仓系列传送门:https://blog.csdn.net/weixin_39032019/category_8871528.html

转载自:https://blog.csdn.net/weixin_39032019/article/details/110635349

作者:惊鸿只一瞥丶

 

 

(责任编辑:admin)
推荐教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们--网站地图          黑ICP备17004983号-1