拉鍊,就是記錄歷史。記錄乙個事物從開始,一直到當前狀態的所有變化的資訊。包含了拉鍊起始時間和結束時間
業務系統可能會覆蓋資料,但是抽取過來的所有資料都做了拉鍊操作後,可以記錄歷史所有的狀態。
刪除和更新記錄在etl_flag上,是刪除還是更新還是插入(d,u,i),蒼南所有的拉鍊操作通過儲存過程實現。
rrs是根據資料建立一直往裡面插入,然後定期歸檔(歷史資料備份,然後表中刪除這部分資料)。
spark 描述了一下 拉鍊表的邏輯實現,僅供參考:
1. 載入文字檔案為rdd
2.rdd 做map ,主鍵做key ,key -value 的pairedrdd
3.group by key
4.flatmapvalue : value list 按照時間排序,填充閉鏈日期,最後一條填充 2999-01-01
5.輸出
對上面**的解釋:
//對文字每行操作得到kv,kv值取決於**塊{}的最後乙個表示式的值
var kv=textfile.map
//對pairedrdd的相同key的value進行操作(一對多對映)
var gkvf=gkv.flatmapvalues
//資料再拼接上最後一條資料
//最後一條資料:資料拼接上"2999-01-01"作為完整
newlist=newlist:+list(len-1)++","+"2999-01-01"
//返回這個list
newlist
}
歷史拉鍊表
在資料倉儲的資料模型設計過程中,經常會遇到這樣的需求 1.資料量比較大 2.表中的部分欄位會被update,如使用者的位址,產品的描述資訊,訂單的狀態等等 3.需要檢視某乙個時間點或者時間段的歷史快照資訊,比如,檢視某乙個訂單在歷史某乙個時間點的狀態,比如,檢視某乙個使用者在過去某一段時間內,更新過...
拉鍊表設計
一 建立拉鍊表 1 假如首日是2022 02 24,首先將資料從ods層載入到dim層,分割槽日期和結束日期都為9999 00 00 2 第二日2022 02 25,一部分使用者新增變化,需要把新增的和變化的裝載到dim層,分割槽結束日期是9999分割槽,但要注意9999分割槽有一部分過期資料 過期...
什麼是拉鍊表
在資料倉儲的資料模型設計過程中,經常會遇到這樣的需求 1.資料量比較大 2.表中的部分欄位會被update,如使用者的位址,產品的描述資訊,訂單的狀態等等 3.需要檢視某乙個時間點或者時間段的歷史快照資訊,比如,檢視某乙個訂單在歷史某乙個時間點的狀態,比如,檢視某乙個使用者在過去某一段時間內,更新過...