??數(shù)據(jù)倉庫的重要特點(diǎn)之一是反映歷史變化,所以如何處理維度的變化是維度設(shè)計(jì)的重要工作之一。緩慢變化維的提出是因?yàn)樵诂F(xiàn)實(shí)世界中,維度的屬性并不是靜態(tài)的,它會(huì)隨著時(shí)間的流逝發(fā)生緩慢的變化,與數(shù)據(jù)增長較為快速的事實(shí)表相比,維度變化相對(duì)緩慢。陰齒這個(gè)就叫做緩慢變化維。
??這里介紹的就是這些維度變化的處理,這邊整理了一下目前主流的緩慢變化維的處理方式。
原樣保留或者重寫,這種方式理論上都是取最新的值作為維度的最終的取值,每個(gè)維度保留一條數(shù)據(jù)。這種處理方式是最簡單的,直接將原系統(tǒng)的維度同步過來使用就可以,不用做過多的處理。
插人新的維度行,每當(dāng)維度發(fā)生變化的時(shí)候,插入新增的一行。采用此種方式,保留歷史數(shù)據(jù),
維度值變化前的事實(shí)和過去的維度值關(guān)聯(lián),維度值變化后的事實(shí)和當(dāng)前的維度值關(guān)聯(lián)。也就是一個(gè)維度會(huì)存在多行的數(shù)據(jù),按時(shí)時(shí)間范圍將維度與事實(shí)表關(guān)聯(lián)。添加維度列,采用這種方式,主要是為了將變化前后記錄的事實(shí)歸為變化前的維度或者歸為變化后的維度。也就是將產(chǎn)生變化的維度,可以在匯總的時(shí)候按照統(tǒng)一分組處理。
快照存儲(chǔ),這種方式就是每一個(gè)周期定時(shí)保存一份數(shù)據(jù),與第二點(diǎn)有點(diǎn)想,不過這里會(huì)產(chǎn)生很多冗余的數(shù)據(jù),當(dāng)維度里大部分行在周期內(nèi),變動(dòng)頻繁的時(shí)候,可以采用。不過按照個(gè)人的開發(fā)經(jīng)驗(yàn),不恨很建議采用,具體要根據(jù)業(yè)務(wù)實(shí)際情況來選擇。
極限存儲(chǔ)歷史拉鏈表,這種方式是方式2的優(yōu)化版,就是當(dāng)新的維度行與舊的維度行變化前后一致的時(shí)候,會(huì)合并一條。還有一點(diǎn)一般拉鏈表的時(shí)間粒度可能知道天,但是方式2,一般到秒,拉鏈表也是到秒。其他的與方式2一致。<b>歷史拉鏈表既能滿足對(duì)歷史數(shù)據(jù)的需求,又能很大程度的節(jié)省存儲(chǔ)資源</b>。什么是歷史拉鏈表?<i>歷史拉鏈表是維護(hù)了歷史狀態(tài),以及最新狀態(tài)數(shù)據(jù)的一種表。 拉鏈表存儲(chǔ)的數(shù)據(jù)實(shí)際上相當(dāng)于快照,只不過做了優(yōu)化,去除了一部分不變的記錄而已,通過拉鏈表可以很方便的還原出拉鏈時(shí)點(diǎn)的客戶記錄。</i> 拉鏈表既能滿足反應(yīng)數(shù)據(jù)的歷史狀態(tài),又可以最大程度的節(jié)省存儲(chǔ),提高查詢效率。

- 微型存儲(chǔ)維度,微型存儲(chǔ)指的就是,將維度中,快速變化的屬性拆分出來,建立新的維度,這個(gè)是為了可以解決維度的過度增長導(dǎo)致歷史拉鏈表效果大打折扣的問題,比如維度每幾分鐘變化一次。屬性快速變化的維度,稱為快速變化魔鬼維度。這個(gè)微型維度建議保留基維度,方便后續(xù)數(shù)據(jù)處理。
??當(dāng)然具體維度需要怎么處理,需要根據(jù)業(yè)務(wù)來,畢竟數(shù)據(jù)開發(fā)是一個(gè)很貼近業(yè)務(wù)的崗位。
需要數(shù)據(jù)倉庫資料可以點(diǎn)擊這個(gè)領(lǐng)取數(shù)據(jù)倉庫(13)大數(shù)據(jù)數(shù)倉經(jīng)典最值得閱讀書籍推薦