數據倉庫(6)數倉分層設計


  目前主流的數據倉庫分層大多為四層,也有五層的架構,這里介紹基本的四層架構。 分別為數據貼源層(ods)、數據倉庫明細層(dw)、多維明細層(dws)和數據集市層(dm)。

  下面是架構圖:

數據倉庫分層設計

  數據分層的目的是:減少重復計算,避免煙囪式開發,節省計算資源,靠上層次,越對應用友好,也對用戶友好,希望大部分(80%以上)的需求,都用DWS,DW的表來支持就行,所以ODS層數據不能被DM層任務引用,需要抽取數據到DW,或者DWS。

  DWS匯總層應優先調用DW明細層。在調用可累加類指標計算時,DWS匯總層盡量優先調用已經產出的粗粒度匯總層,以避免大量匯總都直接從海量的明細數據層計算。

  DM層優先調用DWS,視情況小部分可以調用DW,禁止直接調用ODS數據,避免出現過度的ODS層引用、不合理的數據復制以及子集合冗余
DM層任務的深度不宜過大(建議不超過10層)。

總的來說,數據分層的目的如下:

  • 清晰數據結構:讓每個數據層都有自己的作用和職責,在使用和維護的時候能夠更方便和理解
  • 復雜問題簡化:將一個復雜的任務拆解成多個步驟來分步驟完成,每個層只解決特定的問題
  • 統一數據口徑:通過數據分層,提供統一的數據出口,統一輸出口徑
  • 減少重復開發:規范數據分層,開發通用的中間層,可以極大地減少重復計算的工作

數據貼源層(ods):用來儲存原始數據,同步的腳本和數據的表,要和原始的表有一定的聯系,用於方便數據治理,數據溯源等。一般,同步的腳本,和ods的表要體現源數據庫表的特征,一般表名和字段名,字段格式,都和原始表保持一致,同步的形式包括增量同步和全量同步。

數據倉庫明細層(dw):這一層存放的是一致的、准確的、干凈的數據,即對源系統數據進行了清洗(去除了雜質)后的數據。一層一般來說是按照維度建模抽取的明細數據。通常是星形或雪花結構的數據。

多維明細層(dws):這一層存放的是DW層的,一些通用的匯總數據。一般是某個主題的某個維度的匯總數據,用於提供后續的業務查詢,OLAP分析,數據分發等。一般來說,該層的數據表會相對較少,一張表會涵蓋比較多的業務內容,由於其字段較多,因此一般也會稱該層的表為寬表。

數據集市層(dm):該層主要是提供給數據產品和數據分析使用的數據,這層就是根據需求來抽取數據了。

一般來說,數據分層之后,還需要對開發數據的任務,進行規范,比如字段格式,字段名稱拼寫,主題划分等,不然單純分層,是不足以建立好一個對開發友好,方便運維,方便取數的數倉的,這個分層就是一個貨物倉庫里面各個房間的划分,但是里面貨物需要怎么放,放在哪個房間那個位置,我想要某個數據應該怎么找,這個就需要一整套數據開發規范,以及對應的數據地圖,數據血緣關系系統的支持了。

總的來說,數據層是數倉的骨頭支架,但是肌肉,心臟等這些器官,對建立一個好的數倉,也很關鍵。

需要數據倉庫資料可以點擊這個領取數據倉庫(13)大數據數倉經典最值得閱讀書籍推薦

參考文章:數據倉庫(6)數倉分層設計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM