拉链表
作者:互联网
4.3.1.8.1.1 拉链表回顾
拉链表就是之前我们讲过的SCD2,它的优点是即满足了反应数据的历史状态,又能在最大程度上节省存储。
拉链表的实现需要在原始字段基础上增加两个新字段:
start_time(表示该条记录的生命周期开始时间——周期快照时的状态)
end_time(该条记录的生命周期结束时间)
4.3.1.8.1.2 采集实现步骤
1.建立增量数据临时表update;
2.抽取昨日增量数据(新增和更新)到update表;
3.建立合并数据临时表tmp;
4.合并昨日增量数据(update表)与历史数据(拉链表)
(1)新数据end_time设为’9999-12-31’,也就是当前有效;
(2)如果增量数据有重复id的旧数据,将旧数据end_time更新为前天(昨日-1),也就是从昨天开始不再生效;
(3)合并后的数据写入tmp表;
5.将临时表的数据,覆盖到拉链表中;
6.下次抽取需要重建update表和tmp表。
查询拉链表数据时,可以通过start_time和end_time查询出快照数据。
标签:tmp,end,拉链,update,time,数据 来源: https://blog.51cto.com/u_15277063/2929913