柚子快報邀請碼778899分享:數(shù)據(jù)倉庫 hive拉鏈表詳解
柚子快報邀請碼778899分享:數(shù)據(jù)倉庫 hive拉鏈表詳解
1、背景描述
????????在數(shù)據(jù)倉庫中,維度表中的數(shù)據(jù)會隨著時間發(fā)生變化。當(dāng)我們把維度表數(shù)據(jù)同步到數(shù)倉以后,對于后續(xù)更新數(shù)據(jù),如果直接覆蓋原有數(shù)據(jù),則歷史數(shù)據(jù)丟失導(dǎo)致不能獲取歷史某個時間節(jié)點(diǎn)的數(shù)據(jù)指標(biāo);如果分區(qū)全量冗余存儲,又會造成資源浪費(fèi);如果增量分區(qū)冗余存儲,又不便于使用,對于數(shù)據(jù)分析以及業(yè)務(wù)復(fù)盤決策存在重大影響。
2、拉鏈表定義
????????拉鏈表(Slowly Changing Dimension, SCD Type 2)是一種用于管理和存儲數(shù)據(jù)倉庫中歷史數(shù)據(jù)變化的方法。在數(shù)據(jù)倉庫設(shè)計中,數(shù)據(jù)可能會隨時間變化,而我們需要保留這些變化的歷史記錄,以便能夠追溯到任意時刻的數(shù)據(jù)狀態(tài)。拉鏈表通過在數(shù)據(jù)表中添加時間戳或有效期列來實(shí)現(xiàn)這一目的。
3、拉鏈表設(shè)計形式
基于原始表結(jié)構(gòu),新增起始時間列、結(jié)束時間列、是否當(dāng)前有效記錄列,創(chuàng)建出拉鏈維度表;
原始數(shù)據(jù)表初次同步數(shù)據(jù)采用全量同步形式,起始時間列為原始表的創(chuàng)建時間或者修改時間,結(jié)束時間列為9999-12-31,是否當(dāng)前有效記錄為1(1代表是,0代表否);
后續(xù)采用增量同步形式,如果數(shù)據(jù)發(fā)生變更,則對拉鏈表的對應(yīng)原始記錄進(jìn)行處理,處理措施是修改結(jié)束時間為新記錄的更新時間,是否當(dāng)前有效記錄為0;并將新的變更數(shù)據(jù)追加到拉鏈表中,追加記錄的原始字段設(shè)置為數(shù)據(jù)更新時間,結(jié)束時間列為9999-12-31,是否當(dāng)前有效記錄為1;???????
4、拉鏈表實(shí)操案例
1)假
柚子快報邀請碼778899分享:數(shù)據(jù)倉庫 hive拉鏈表詳解
精彩內(nèi)容
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。