分層架構在資料倉庫的應用
分層架構的特點
分層架構是運用最為廣泛的架構模式,經典的如B/S架構、 MVC 架構。其特點如下:
- 優點:
分離開發人員的關注,每個開發人員可以只關注自己所負責的層次的事情,無需過多關注其它層級的東西;
解耦,降低依賴,上層只能依賴於下層;
可複用,可以將公共的部分下沉到同一個層級,上層可以複用公共層級。
- 缺點:
效能下降,本來可以直連操作,現在要層層傳遞,勢必造成效能的下降;
- 其它特點
開發成本很受設計質量的影響,因為多層分別承擔各自的職責,一旦變更可能需要在多個層做更改,這樣難免會增加開發成本;但是合理的能力抽象可以提高了複用性,又能降低開發成本。
可擴充套件性可高可低,有些層級變化可能涉及到其它層的修改造成擴充套件比較麻煩;但若設計得好的話,若需要變更的時候可以只改動某一層的東西,對其他層次影響較小。
資料倉庫分層的好處
1)清晰資料結構:每一個數據分層都有對應的作用域,在使用資料的時候能更方便的定位和理解。
2)資料血緣追蹤:提供給業務人員或下游系統的資料服務時都是目標資料,目標資料的資料來源一般都來自於多張表資料。若出現目標資料異常時,清晰的血緣關係可以快速定位問題所在。而且,血緣管理也是元資料管理重要的一部分。
3)減少重複開發:資料的逐層加工原則,下層包含了上層資料加工所需要的資料,這樣的加工方式可以避免資料開發人員需要重新從源系統抽取資料進行加工。
4)資料關係條理化:源系統間存在複雜的資料關係,比如客戶資訊同時存在於核心系統、信貸系統、理財系統、資金系統,取數時該如何決策呢?資料倉庫會對相同主題的資料進行統一建模,把複雜的資料關係梳理成條理清晰的資料模型,使用時就可避免上述問題了。
5)遮蔽原始資料的影響:資料的逐層加工原則,上層的資料都由下一層的資料加工獲取,不允許跳級取數。而原始資料位於數倉的最底層,離應用層資料還有多層的資料加工,所以加工應用層資料的過程中就會把原始資料的變更消除掉,保持應用層的穩定性。
資料倉庫的分層架構
數倉的分層架構有很多種,不同企業會根據業務和發展的考量,設計不同的分層架構,架構的名字也不盡相同。下圖是用得相對比較廣泛的分層架構。
在該架構中,ODS層從資料來源抽取資料,一般來說是和源資料的結構一致,不會做很大的變更,這樣做主要是起到一個緩衝的作用,便於後續其它層次建模取數彙總,同時也方便追溯資料來源。
抽取到ODS層後,根據業務主體進行建模,分別從ODS中取到相關的資料放到明細表中,儲存明細資料表的層次則為DWD層;
由於業務分析很多用到彙總的資料,比如月成交額之類的,因此建一個彙總層;
對於一些指標而言,比如某月某城市使用者的數量,涉及到時間和地點的維度,這些一般是公共層次,因此可以建一層DIM維度層;
有些業務場景,需要將計算結果作為業務系統的資料,或拿資料用於資料探勘之類的應用,因此建一層ADS層。
以上的架構只是目前比較廣泛的情況,事實上每個企業都有不同的分層架構,至少在筆者公司中,不是按照這種方式進行分層。
小結
本文介紹了分層架構、分層架構的特點,以及在資料倉庫中的應用。對於層次架構而言,其實是應用很廣泛有相對比較簡單的架構,但架構的質量取決於分層的情況,因此,一定要好好考慮清楚企業的業務場景和未來的發展,設計出一個適合的架構。
關注【大資料的奇妙冒險】,獲取更多內容以及大資料相關資料