数据仓库中的慢变化维度和快变化维度

本文探讨数据仓库中维度表的变化处理,包括慢变化维度(SCD)的Type1、Type2、Type3、Type4和Type6,以及快变化维度(RCD)的处理策略。SCD主要用于处理如客户类别等变化较慢的数据,而RCD针对如用户搜索关键字这类快速变化的数据。各种类型的SCD各有优缺点,Type2和Type3在实际应用中较为常见。
摘要由CSDN通过智能技术生成

数据仓库中的事实表总是在变化中,通常是新的业务数据不断装载入DW。事实表数据的增加是正常现象,也无需特别处理。但很多时候维度表的数据也会发生变化,且维度表的数据变化会导致维度表和事实表的关系发生变化。因此对于维度变化,该如何设计维度表,是本文要讨论的问题。

例如一个订单事实表和一个客户维度表,每个订单有一个对应的客户。在今年5月17日之前,客户维度表中某客户的类别是corporate,5月18日变化为了retail。很显然统计5月的订单数据时,我们希望得到的客户类型即有corporate,也有retail。这就要求维度表中保存历史数据,同时如何关联事实表和维度表也是需要设计时思考的问题。


Slow Changing Dimensions(SCD) 

指与时间等因素无关的,变化相对较慢的维度。如产品类别维度,地区维度等。

SCD可根据是否/如何保留维度的变化历史,分为不同类别。

Type1:

将旧的维度信息覆盖。如下例,当客户类别信息发生变化时,直接将维度表中的旧值覆盖掉。因此Type 1没有保留维度的变化历史。

 


Before the change: 
Customer_ID Customer_Name Customer_Type
1 Cust_1 Corporate


After the change: 
Customer_ID Customer_Name Customer_Type
1 Cust_1 Retail

这种方式的优点是简单,缺点是无法追踪历史。如果是雪花模型,还可能会导致一些外键关系错误。


Type2:

增加一行新的维度数据。如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值