加载中...

拉链表是中文数据仓库实践中广泛使用的一种历史数据存储设计:为每条记录增加开始日期与结束日期两个字段,记录该版本数据的有效区间,数据版本首尾相接形似拉链,因此得名。其思想与 Kimball 的 SCD Type 2 一脉相承。
当源表某条记录发生变化时,ETL 将拉链表中该记录的旧版本「关链」——把结束日期从极大值(如 9999-12-31)更新为变更前一日,同时插入一条新版本记录,开始日期为变更日、结束日期为极大值。查询任意历史时点的全量快照,只需筛选「开始日期 <= 该日 且 结束日期 >= 该日」。在 Hive 等不支持更新的系统中,通常用「当日增量与昨日拉链全量重算合并、覆写分区」的方式实现。
拉链表常用于用户、账户、订单状态等缓慢变化且需追溯历史的大表,相比每日全量快照可节省大量存储。
优点是既能还原任意时点快照又避免冗余;缺点是加工逻辑较复杂,回刷历史数据成本高。

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