首页/数据/数据工程与 ETL 速查/缓慢变化维总览(SCD)

缓慢变化维总览(SCD)

缓慢变化维解决维度属性随时间改变的存储问题:Type 1 直接覆盖、Type 2 新增版本行保留历史、Type 3 增加列存前值;选哪种取决于是否需要用历史属性还原当时口径。

三种策略

类型做法历史保留典型场景
Type 1原值覆盖不保留纠错、无分析价值的属性
Type 2新增版本行(生效区间)完整保留会员等级、组织归属、地址
Type 3增加前值列保留有限历史只关心上一版本的简单场景

选型提问

选型提问
业务是否需要用当时的等级或归属回溯历史指标?
→ 需要:Type 2(拉链表)
→ 不需要且允许覆盖:Type 1
→ 只对比上一版:Type 3
同一张维度表可对不同属性采用不同策略:等级用 Type 2,姓名拼写纠错用 Type 1。

易错点

  • 全部属性都用 Type 2,维度版本数膨胀,存储与关联成本上升
  • 等级这类关键属性用 Type 1 覆盖,历史报表口径无法复现

数据来源与参考

  • Kimball《The Data Warehouse Toolkit》缓慢变化维(SCD)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌