大家好,欢迎来到IT知识分享网。
目录:
一、拉链表介绍
二、拉链表使用场景
三、真实企业案例(社招案例)
四、相关面试题
一、拉链表介绍
拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。
二、拉链表使用场景
我们在设计模型的时候会遇到一些情况:
1. 表中的部分字段会被更新,如企微添加好友,归因渠道。
2. 需要查看某一个时间点或者时间段的历史快照信息,例如:查看某一个用户在2022年的求职状态。
3. 表中的记录变化的比例和频率不是很大比如,总共有5亿的用户,每天新增和发生变化的有100w左右,变化的比例占到很小。
三、实现过程(社招案例)
企业简历特权使用记录,修改成拉链表,记录历史更新状态
说明:data_dt 为分区时间,pre1day为 data_dt-1,ods为全量表
需要一张临时表,用于存放中间过程
建表:
准备数据:
将数据插入:ods_test_test_business_da 的2022-10-22的分区中,按着拉链表的流程最后可以得到dwd_test_business_da 表2022-10-22的最原始的数据,record_start_date为create_date,record_end_date 为3000-12-31
插入 ods_test_test_business_da 分区为2022-10-23
1、新增直接取过来,未结束日期为3000-12-31
结果:
2. 更新则保留前一日数据,并将记录结束日期记成更新日期,新记录的开始日期为更新日期
3. 不变的记录,取昨日数据
4. 删除的数据则保留前一日数据,并将记录结束日期记成更新日期
5. 拉链结束的数据直接拿过来
6. 得到最后的拉链表
四、相关面试题
什么是拉链表,怎样设计一张拉链表?
首先要说明拉链表是什么,什么业务场景下会使用,然后结合自己的业务细说,并解决了什么问题。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/185761.html