请解释数据仓库中的缓慢变化维度(SCD)概念,并列举常见的 SCD 类型及其主要特点。
考察说明
考查对数据仓库维度管理中历史变化处理策略的掌握程度。
回答思路
- 【回答框架 1】缓慢变化维度(SCD)指维度表中属性值随时间缓慢变化,需要记录历史轨迹的维度。常用策略包括SCD1、SCD2和SCD3,分别对应覆盖、增加历史记录和增加新列。
- 【回答框架 2】SCD1:直接覆盖旧值,不保留历史,适用于无需审计的简单场景,实现简单但丢失历史。
- 【回答框架 3】SCD2:新增一行记录,包含开始日期、结束日期和当前标志,可完整保留历史,适用于需要审计和回溯的场景,但会增加存储并增加查询复杂度。
- 【回答框架 4】SCD3:增加新列存储历史值,可保留有限次历史,如当前值和上一值,空间开销小但历史深度有限。
- 【回答框架 5】选择依据:需根据业务需求、存储成本和查询性能综合确定,常见选择是SCD2用于重要维度,SCD1用于非关键属性。
- 【关键点 1】SCD1覆盖历史,SCD2新增行记录历史,SCD3增加列保留有限历史。
- 【关键点 2】SCD2通常包含生效和失效时间以及当前标志。
- 【关键点 3】实际场景中需结合业务需求和存储成本选择SCD类型。
- 【易错点 1】不要将SCD2误认为只能记录状态变化,其本质是快照历史。
- 【易错点 2】注意避免因SCD2导致表数据膨胀,需分区或归档。