9. 缓慢变化维度处理
缓慢变化维(SCD)问题是ETL设计中的一个核心问题。常用的有三种解决思路:
- Type 1 : 直接覆盖,不记录历史数据,新数据覆盖旧数据,逻辑简单。
- Type 2 : 创建一个新行,使用flag列来标识数据有效性。一般会有OpTime,StartTime,EndTime,变化说明 字段来对变化过程进行描述。
- Type 3:添加一个新列,用不同的字段保存变化痕迹,例如 Current Column 和 Previous Column。它只能保存两次变化记录.适用于变化不超过两次的维度。
选择哪种方式需要结合业务需求来判断,遵循多范式编程和最小表达力原则(least expressiveness principle)。