??數(shù)據(jù)倉庫的重要特點之一是反映歷史變化浇揩,所以如何處理維度的變化是維度設計的重要工作之一础锐。緩慢變化維的提出是因為在現(xiàn)實世界中拘荡,維度的屬性并不是靜態(tài)的,它會隨著時間的流逝發(fā)生緩慢的變化切厘,與數(shù)據(jù)增長較為快速的事實表相比,維度變化相對緩慢疫稿。陰齒這個就叫做緩慢變化維遗座。
??這里介紹的就是這些維度變化的處理途蒋,這邊整理了一下目前主流的緩慢變化維的處理方式馋记。
原樣保留或者重寫梯醒,這種方式理論上都是取最新的值作為維度的最終的取值冤馏,每個維度保留一條數(shù)據(jù)。這種處理方式是最簡單的代箭,直接將原系統(tǒng)的維度同步過來使用就可以涕刚,不用做過多的處理。
插人新的維度行极景,每當維度發(fā)生變化的時候盼樟,插入新增的一行。采用此種方式译秦,保留歷史數(shù)據(jù)筑悴,
維度值變化前的事實和過去的維度值關聯(lián)阁吝,維度值變化后的事實和當前的維度值關聯(lián)械拍。也就是一個維度會存在多行的數(shù)據(jù)殊者,按時時間范圍將維度與事實表關聯(lián)猖吴。添加維度列海蔽,采用這種方式党窜,主要是為了將變化前后記錄的事實歸為變化前的維度或者歸為變化后的維度幌衣。也就是將產(chǎn)生變化的維度豁护,可以在匯總的時候按照統(tǒng)一分組處理欲间。
快照存儲,這種方式就是每一個周期定時保存一份數(shù)據(jù)猎贴,與第二點有點想,不過這里會產(chǎn)生很多冗余的數(shù)據(jù)蔑祟,當維度里大部分行在周期內沉唠,變動頻繁的時候右冻,可以采用。不過按照個人的開發(fā)經(jīng)驗牍帚,不恨很建議采用暗赶,具體要根據(jù)業(yè)務實際情況來選擇。
極限存儲歷史拉鏈表岳锁,這種方式是方式2的優(yōu)化版激率,就是當新的維度行與舊的維度行變化前后一致的時候勿决,會合并一條乒躺。還有一點一般拉鏈表的時間粒度可能知道天,但是方式2低缩,一般到秒嘉冒,拉鏈表也是到秒。其他的與方式2一致咆繁。<b>歷史拉鏈表既能滿足對歷史數(shù)據(jù)的需求讳推,又能很大程度的節(jié)省存儲資源</b>。什么是歷史拉鏈表么介?<i>歷史拉鏈表是維護了歷史狀態(tài)娜遵,以及最新狀態(tài)數(shù)據(jù)的一種表。 拉鏈表存儲的數(shù)據(jù)實際上相當于快照壤短,只不過做了優(yōu)化设拟,去除了一部分不變的記錄而已,通過拉鏈表可以很方便的還原出拉鏈時點的客戶記錄慨仿。</i> 拉鏈表既能滿足反應數(shù)據(jù)的歷史狀態(tài),又可以最大程度的節(jié)省存儲纳胧,提高查詢效率镰吆。
- 微型存儲維度,微型存儲指的就是跑慕,將維度中万皿,快速變化的屬性拆分出來,建立新的維度核行,這個是為了可以解決維度的過度增長導致歷史拉鏈表效果大打折扣的問題牢硅,比如維度每幾分鐘變化一次。屬性快速變化的維度芝雪,稱為快速變化魔鬼維度减余。這個微型維度建議保留基維度,方便后續(xù)數(shù)據(jù)處理惩系。
??當然具體維度需要怎么處理位岔,需要根據(jù)業(yè)務來,畢竟數(shù)據(jù)開發(fā)是一個很貼近業(yè)務的崗位堡牡。
需要數(shù)據(jù)倉庫資料可以點擊這個領取數(shù)據(jù)倉庫(13)大數(shù)據(jù)數(shù)倉經(jīng)典最值得閱讀書籍推薦