拉链表
一、数据加工和维护
- 概念:
所谓拉链表就是记录一个事物从开始 一直到当前状态的所有变化信息;通过比较,记录数据的生命周期,能够快速还原任意天的历史快照,而非全量的每天记录所有数据,因此极大节省了存储。
一般表名后面xxx_chain - 数据加工方式:
(1)拉链表中一般会存在一个字段“start_date”表示该记录的起始时间,不代表创建时间,非业务时间。一把会存在"createtime"表示该条记录的创建时间。
(2)分区:一般dp分区包含线上(‘ACTIVE’)、过期(‘EXPIRED’)其中ACTIVE表示当前线上状态。还会有end_date分区记录数据有效期的截止日期。dt分区表示记录加工的时间分区,因此end_date和dt一般相同。
(3)有些情况,dp中还存在HISTORY分区,和生产系统对应。
(4)dp='ACTIVE’每日都会保持与线上数据一致,其有效截止日期end_date一般会设置成一个较大的值,比如’4712-12-31’ 。 - 举例:
id=1记录发生了变化,而id=4是新增的记录。
EXPIRED分区只关注发生变化的记录,ACTIVE是最新的线上数据。