数仓建模理论 之 维度建模

说起维度建模,你不得不知道以下几个概念:事实表、维度表、星型模型、雪花模型、星座模型

==================================================================

维度建模

Ralph Kimball推崇数据集市的集合为数据仓库,同时也提出了对数据集市的维度建模,将数据仓库中的表划分为事实表、维度表两种类型。

1,事实表

在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每一个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,会产生可度量的值,而这个过程就产生了一个事实表,存储了每一个可度量的事件。

电商场景案例:

一次购买事件,涉及主体包括客户、商品、商家,

产生的可度量值 包括 商品数量、金额、件数等。

2,维度表

维度,顾名思义,看待事物的角度。比如从颜色、尺寸的角度来比较手机的外观,从cpu、内存等较比比较手机性能。

维度表一般为单一主键,在ER模型中,实体为客观存在的事物,会带有自己的描述性属性,属性一般为文本性、描述性的,这些描述被称为维度。

比如商品,单一主键:商品ID,属性包括产地、颜色、材质、尺寸、单价等,但并非属性一定是文本,比如单价、尺寸,均为数值型描述性的。

日常主要的维度抽象包括:商品维度表,时间维度表、地理区域维度表等。

区域维度表:

区域维度表:在金融行业,大部分项目都是用这个维度方案。

对于大数据的项目,你可以根据实际情况,决定用哪种维度建模方法。

3,星型模型

星型模型:一般是事实表和N个维度表直接关联

你可以用星型模型(如下图)

比如下图:

4,雪花模型

雪花模型一般是事实表存在和维度表间接关联:需要维度表再次关联一张维度表

你可以用雪花模型(如下图):

但是如果你非得要用星型模型,也可以多张维度表进行关联,形成一张维度表,这样子就可以把雪花模型变为星型模型(如下图):

5,星座模型

星座模型一般是多个事实表共用N张维度表。

你可以用星座模型(如下图):

6,雪花模型与星型模型对比:

 6.1,建模方式不同

(如下图):

所以由上可以看出:

星型模型和雪花模型主要区别就是对维度表的拆分,对于雪花模型,维度表的涉及更加规范,一般符合3NF;

而星型模型,一般采用降维的操作,利用冗余来避免模型过于复杂,提高易用性和分析效率

6.2,冗余:

雪花模型符合业务逻辑设计,采用3NF设计,有效降低数据冗余;

星型模型的维度表设计不符合3NF,反规范化,维度表之间不会直接相关,牺 牲部分存储空间

6.3,性能:

雪花模型由于存在维度间的关联,采用3NF降低冗余,通常在使用过程中,需要连接更多的维度表,导致性能偏低;

星型模型反三范式,采用降 维的操作将维度整合,以存储空间为代价有效降低维度表连接数,性能较雪 花模型高

6.4,ETL:

雪花模型符合业务ER模型设计原则,在ETL过程中相对简单,但是由于附属模型的限制,ETL任务并行化较低;

星型模型在设计维度表时反范式设 计,所以在ETL过程中整合业务数据到维度表有一定难度,但由于避免附属维 度,可并行化处理

7,维度建模-业务案例:

某电商平台,经常需要对订单进行分析,以某宝的购物订单为例,以维度建模的方式设计该模型。

涉及到事实表为订单表、订单明细表,维度包括商品维度、用户维度、商家维度、区域维度、时间维度。

商品维度:商品ID、商品名称、商品种类、单价、产地等。

用户维度:用户ID、姓名、性别、年龄、常住地、职业、学历等。

时间维度:日期ID、日期、周几、上/中/下旬、是否周末、是否假期等优惠券:券ID、券类别、优惠金额。

订单中包含的度量:商品件数、总金额、总减免;

描述性属性:下单时间、结算时间、订单状态等。

订单明细包含度量:商品ID、件数、单价、减免金额;

描述性属性:入购物车时间、状态。

建模图形如下:

上面的案例,对于商品再拆分出厂家、品类;

用户的常住地再拆分出区域维度,改造为雪花模型。

好了,关于维度建模,就分享到这里,你可以有一个比较清晰的认识。天天开心,也欢迎各位小伙伴一键三连。

  • 37
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不被定义喵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值