数据仓库企业最佳实践系列之拉链表

目录:

一、拉链表介绍

二、拉链表使用场景

三、真实企业案例(社招案例)

四、相关面试题

一、拉链表介绍

拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。

二、拉链表使用场景

我们在设计模型的时候会遇到一些情况:

1.表中的部分字段会被更新,如企微添加好友,归因渠道。

2.需要查看某一个时间点或者时间段的历史快照信息,例如:查看某一个用户在年的求职状态。

3.表中的记录变化的比例和频率不是很大比如,总共有5亿的用户,每天新增和发生变化的有w左右,变化的比例占到很小。

三、实现过程(社招案例)

企业简历特权使用记录,修改成拉链表,记录历史更新状态

说明:data_dt为分区时间,pre1day为data_dt-1,ods为全量表

需要一张临时表,用于存放中间过程

建表:

准备数据:

将数据插入:ods_test_test_business_da的-10-22的分区中,按着拉链表的流程最后可以得到dwd_test_business_da表-10-22的最原始的数据,record_start_date为create_date,record_end_date为-12-31

插入ods_test_test_business_da分区为-10-23

1、新增直接取过来,未结束日期为-12-31

结果:

2.更新则保留前一日数据,并将记录结束日期记成更新日期,新记录的开始日期为更新日期

3.不变的记录,取昨日数据

4.删除的数据则保留前一日数据,并将记录结束日期记成更新日期

5.拉链结束的数据直接拿过来

6.得到最后的拉链表

四、相关面试题

什么是拉链表,怎样设计一张拉链表?

首先要说明拉链表是什么,什么业务场景下会使用,然后结合自己的业务细说,并解决了什么问题。




转载请注明:http://www.180woai.com/afhgx/7976.html


冀ICP备2021022604号-10

当前时间: