加载中...

缓慢变化维度(Slowly Changing Dimension,SCD)是数据仓库领域处理维度属性随时间缓慢变化的一组技术,由 Ralph Kimball 提出并编号分类,解决「客户搬家、员工调岗后,历史报表如何反映当时状态」的问题。
Type 0 保留原值不变;Type 1 直接覆盖旧值,不保留历史,实现最简单但会「改写历史」;Type 2 新增一行并用代理键区分版本,配合生效日期、失效日期与当前标志字段,可完整追溯任意时点的属性状态,是最常用的类型;Type 3 增加列保存「上一个值」,只能保留有限几代历史;更高编号类型(如 Type 4 历史小表、Type 6 混合法)由基础类型组合而成。
在传统数仓中,SCD Type 2 通常由 ETL 作业比对源数据与维表实现;在 Hive 等不支持行级更新的系统中衍生出拉链表做法;dbt 的 snapshot 功能也是其自动化实现。
SCD 是维度建模的核心技巧之一,类型选择需在历史追溯需求、存储成本与 ETL 复杂度之间权衡。

登录 后参与讨论
暂无讨论,来发表第一条评论吧