缓慢变化维常用三种处理类型

749 阅读1分钟

前言

Slowly Changing Dimension 简称SCD是数据仓库建模和处理过程中一个很重要的概念,因为数据仓库系统的主要功能是对历史数据进行汇总和分析,所以保存历史记录的变化是很重要的。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维。

SCD 三种常用类型

类型1(Type 1):覆盖旧数值。

根据主键ID来追踪数据是否发生变化,发生变化直接将旧数据覆盖重写

优点:节省空间,操作简单

缺点:没有保留历史数据,无法分析历史变化信息

类型2(Type 2):增加新数值。

就类似拉链表,一般增加以下字段。

star_data(开始时间)

end_data(结束时间)

status(状态、是否当前记录值)

Date Changed (记录改变的时间戳)

优点:支持追寻历史快照数据,较节省空间

类型3(Type 3):增加新字段。

添加历史列。不会追踪所有的历史记录,只会追踪上一次的历史信息

优点:只追踪上一次的历史信息,介于类型1和2之间

缺点:如果维护字段较多就比较麻烦

总结

  • 类型1适合不需要维护历史数据,直接覆盖
  • 类型2使用比较多、常见,除了类型1基本上都是优先考虑类型2
  • 类型3适合不会追踪所有的历史记录,只会追踪上一次的历史信息