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