1、背景描述
在数据仓库中,维度表中的数据会随着时间发生变化。当我们把维度表数据同步到数仓以后,对于后续更新数据,如果直接覆盖原有数据,则历史数据丢失导致不能获取历史某个时间节点的数据指标;如果分区全量冗余存储,又会造成资源浪费;如果增量分区冗余存储,又不便于使用,对于数据分析以及业务复盘决策存在重大影响。
2、拉链表定义
拉链表(Slowly Changing Dimension, SCD Type 2)是一种用于管理和存储数据仓库中历史数据变化的方法。在数据仓库设计中,数据可能会随时间变化,而我们需要保留这些变化的历史记录,以便能够追溯到任意时刻的数据状态。拉链表通过**在数据表中添加时间戳或有效期列**来实现这一目的。
3、拉链表设计形式
- 基于原始表结构,新增起始时间列、结束时间列、是否当前有效记录列,创建出拉链维度表;
- 原始数据表初次同步数据采用全量同步形式,起始时间列为原始表的创建时间或者修改时间,结束时间列为9999-12-31,是否当前有效记录为1(1代表是,0代表否);
- 后续采用增量同步形式,如果数据发生变更,则对拉链表的对应原始记录进行处理,处理措施是修改结束时间为新记录的更新时间,是否当前有效记录为0;并将新的变更数据追加到拉链表中,追加记录的原始字段设置为数据更新时间,结束时间列为9999-12-31,是否当前有效记录为1;
4、拉链表实操案例
1)假
本文转载自: https://blog.csdn.net/m0_38003171/article/details/139662993
版权归原作者 圣·杰克船长 所有, 如有侵权,请联系我们删除。
版权归原作者 圣·杰克船长 所有, 如有侵权,请联系我们删除。