用spark模擬拉鍊表

2021-09-22 01:39:44 字數 889 閱讀 6440

拉鍊,就是記錄歷史。記錄乙個事物從開始,一直到當前狀態的所有變化的資訊。包含了拉鍊起始時間和結束時間

業務系統可能會覆蓋資料,但是抽取過來的所有資料都做了拉鍊操作後,可以記錄歷史所有的狀態。

刪除和更新記錄在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.需要檢視某乙個時間點或者時間段的歷史快照資訊,比如,檢視某乙個訂單在歷史某乙個時間點的狀態,比如,檢視某乙個使用者在過去某一段時間內,更新過...