天天看點

資料倉庫企業最佳實踐系列之拉連結清單

作者:程式員果汁兒
資料倉庫企業最佳實踐系列之拉連結清單

目錄:

一、拉連結清單介紹

二、拉連結清單使用場景

三、真實企業案例(社招案例)

四、相關面試題

一、拉連結清單介紹

拉連結清單是針對資料倉庫設計中表存儲資料的方式而定義的,顧名思義,所謂拉鍊,就是記錄曆史。記錄一個事物從開始,一直到目前狀态的所有變化的資訊。

二、拉連結清單使用場景

我們在設計模型的時候會遇到一些情況:

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. 得到最後的拉連結清單

資料倉庫企業最佳實踐系列之拉連結清單
資料倉庫企業最佳實踐系列之拉連結清單

四、相關面試題

什麼是拉連結清單,怎樣設計一張拉連結清單?

首先要說明拉連結清單是什麼,什麼業務場景下會使用,然後結合自己的業務細說,并解決了什麼問題。

繼續閱讀