数据仓库—增量表,全量表,拉链表
一.增量表,全量表,拉链表概念
1.增量表
记录更新周期内新增的数据,即在原表中数据的基础上新增本周期内产生的新数据;
2.全量表
记录更新周期内的全量数据,无论数据是否有变化都需要记录;
3.拉链表
一种数据存储和处理的技术方式,可以记录数据的历史信息,记录数据从开始一直到当前所有变化的信息。
二.三种表详解
1.增量表
增量表每次更新是在原表数据的基础上记录本周期内新增的数据,每次更新只新增一天内产生的新数据,每次新产生的数据是以最新分区增加到表中,原先的数据依然存在于表中,例如日期是2020-06-03,新增1条数据到表中,dt=2020-06-03,但2020-06-01的数据依然在表中,可以按照dt=2020-06-01进行查询;
2.全量表
全量表每次更新都会记录全量数据,包括原全量数据和本次新增数据,即每个分区内的数据都是截至分区时间的全量总数据。注意:全量表中每个分区内都是截至分区时间的全量数据,原先分区的数据依然存在于表中,只是每次更新会在最新分区内再更新一遍全量数据。
3.拉链表
拉链表中有开始时间(start_time)和结束时间(end_time)两个字段;
start_time:数据的开始时间;
end_time:数据有效的截至日期;
拉链表一条数据闭链,end_time填写实际失效时间,同时新增一条数据,end_time填写系统能处理的最大时间,表示一个达不到的无限向后延伸的时间,意味着该数据在线上永久有效(即闭链的同时要有开链)。
拉链表可以记录一条数据从开始到当前的所有历史信息,便于查询历史数据。如还原2020-06-02的历史快照,使用end_time> ‘2020-06-02’ and start_time<= ‘2020-06-02’ 查询,end_time过滤2020-06-02之前的旧数据,start_time过滤2020-06-02之后的新数据。