数仓理论知识之数据模型

数据模型是数仓的核心。

数据模型决定数仓的续航。

数据模型的设计应该预测未来业务的发展。


主要讨论维度建模方式。

数据模型

1. 基本概念

维度建模是数据仓库大师Ralph Kimball提出的,同时也是数据仓库工程领域最流行的数仓建模经典。

维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

它是面向分析的,为了提高查询性能可以增加数据冗余,反规范化的设计技术。

1.1 事实表

事实表产生于业务过程,存储了业务活动或事件提炼出来的性能度量。从最低的粒度级别来看,事实表行对应一个度量事件。

事实表根据粒度的角色划分不同,可分为事务事实表、周期快照事实表、累积快照事实表。

  • 事务事实表
    用于承载事务数据,通常粒度比较低,它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表,例如产品交易事务事实、ATM交易事务事实。

  • 周期快照事实表
    按照一定的时间周期间隔(每天,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充。用来记录有规律的、固定时间间隔的业务累计数据,通常粒度比较高,例如账户月平均余额事实表。

  • 累计快照事实表
    用来记录具有时间跨度的业务处理过程的整个过程的信息,每个生命周期一行,通常这类事实表比较少见。

注意:这里需要值得注意的是,在事实表的设计时,一定要注意一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实表中。

1.2 维度表

维度表是维度建模的核心,他基于一致性维度的架构,他指业务过程的发生或分析角度。同时维度表有两种特殊的维度–退化维度与缓慢变化维度。

  • 退化维度
    一些维度直接退化进事实表中,一般用于分组分析时使用。
    这种退化维度一般都是事务的编号,如订单编号、发票编号等。这类编号需要保存到事实表中,但是不需要对应的维度表,所以称为退化维度。
    看起来像是事实表的一个维度关键字,但实际上并没有对应的维度表。

  • 缓慢变化维度
    维度的属性并不是始终不变的,它会随着时间的流逝发生缓慢的变化,这种随时间发生变化的维度我们一般称之为缓慢变化维。
    推荐使用拉链表的方式解决。
    在这里插入图片描述

1.3 建模流程

建模分为四步:

  • 选择业务过程
  • 声明粒度
  • 确认粒度
  • 确认事实

可以看我这一篇文章:数据仓库建模流程

2. 建模方式

2.1 维度建模(主要讨论)

企业中最流行、也是最经典的数仓建模经典。

  • 星型模型
    星型模型主要是维表和事实表,以事实表为中心,所有维度直接关联在事实表上,呈星型分布。
    在这里插入图片描述

  • 星座模型
    星座模型,是对星型模型的扩展延伸,多张事实表共享维度表。数仓模型建设后期,大部分维度建模都是星座模型。
    在这里插入图片描述

  • 雪花模型
    雪花模型,在星型模型的基础上,维度表上又关联了其他维度表。这种模型维护成本高,性能方面也较差,所以一般不建议使用。
    在这里插入图片描述

2.2 范式建模

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

2.3 Data Vault模型

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

2.4 Anchor模型

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

3. 建模工具

  • PowerDesigner
  • ERWin
  • Visio
  • Excel Mapping
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒 暄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值