天天看點

資料倉庫(9)數倉緩慢變化次元資料的處理

  資料倉庫的重要特點之一是反映曆史變化,是以如何處理次元的變化是次元設計的重要工作之一。緩慢變化維的提出是因為在現實世界中,次元的屬性并不是靜态的,它會随着時間的流逝發生緩慢的變化,與資料增長較為快速的事實表相比,次元變化相對緩慢。陰齒這個就叫做緩慢變化維。

  這裡介紹的就是這些次元變化的處理,這邊整理了一下目前主流的緩慢變化維的處理方式。

  • 原樣保留或者重寫 ,這種方式理論上都是取最新的值作為次元的最終的取值,每個次元保留一條資料。這種處理方式是最簡單的,直接将原系統的次元同步過來使用就可以,不用做過多的處理。
  • 插人新的次元行

    ,每當次元發生變化的時候,插入新增的一行。采用此種方式,保留曆史資料,

    次元值變化前的事實和過去的次元值關聯,次元值變化後的事實和目前的次元值關聯。也就是一個次元會存在多行的資料,按時時間範圍将次元與事實表關聯。

  • 添加次元列 ,采用這種方式,主要是為了将變化前後記錄的事實歸為變化前的次元或者歸為變化後的次元。也就是将産生變化的次元,可以在彙總的時候按照統一分組處理。
  • 快照存儲 ,這種方式就是每一個周期定時儲存一份資料,與第二點有點想,不過這裡會産生很多備援的資料,當次元裡大部分行在周期内,變動頻繁的時候,可以采用。不過按照個人的開發經驗,不恨很建議采用,具體要根據業務實際情況來選擇。
  • 極限存儲曆史拉連結清單 ,這種方式是方式2的優化版,就是當新的次元行與舊的次元行變化前後一緻的時候,會合并一條。還有一點一般拉連結清單的時間粒度可能知道天,但是方式2,一般到秒,拉連結清單也是到秒。其他的與方式2一緻。 曆史拉連結清單既能滿足對曆史資料的需求,又能很大程度的節省存儲資源 。什麼是曆史拉連結清單?曆史拉連結清單是維護了曆史狀态,以及最新狀态資料的一種表。 拉連結清單存儲的資料實際上相當于快照,隻不過做了優化,去除了一部分不變的記錄而已,通過拉連結清單可以很友善的還原出拉鍊時點的客戶記錄。 拉連結清單既能滿足反應資料的曆史狀态,又可以最大程度的節省存儲,提高查詢效率。
資料倉庫(9)數倉緩慢變化次元資料的處理
  • 微型存儲次元 ,微型存儲指的就是,将次元中,快速變化的屬性拆分出來,建立新的次元,這個是為了可以解決次元的過度增長導緻曆史拉連結清單效果大打折扣的問題,比如次元每幾分鐘變化一次。屬性快速變化的次元,稱為快速變化魔鬼次元。這個微型次元建議保留基次元,友善後續資料處理。

  當然具體次元需要怎麼處理,需要根據業務來,畢竟資料開發是一個很貼近業務的崗位。

參考文章:資料倉庫(9)數倉緩慢變化次元資料的處理

本文來自部落格園,作者:張飛的豬,轉載請注明原文連結:https://www.cnblogs.com/the-pig-of-zf/p/16230530.html

作者公衆号:張飛的豬大資料分享,不定期分享大資料學習的總結和相關資料,歡迎關注。

繼續閱讀