在阿里巴巴的數據體系中,我們建議將數據倉庫分為三層,自下而上為:數據引入層(ODS,Operation Data Store)、數據公共層(CDM,Common Data Model)和數據應用層(ADS,Application Data Service)。
數據倉庫的分層和各層級用途如下圖所示。
- 數據引入層ODS(Operation Data Store):存放未經過處理的原始數據至數據倉庫系統,結構上與源系統保持一致,是數據倉庫的數據準備區。主要完成基礎數據引入到MaxCompute的職責,同時記錄基礎數據的歷史變化。
- 數據公共層CDM(Common Data Model,又稱通用數據模型層),包括DIM維度表、DWD和DWS,由ODS層數據加工而成。主要完成數據加工與整合,建立一致性的維度,構建可復用的面向分析和統計的明細事實表,以及匯總公共粒度的指標。
- 公共維度層(DIM):基于維度建模理念思想,建立整個企業的一致性維度。降低數據計算口徑和算法不統一風險。
公共維度層的表通常也被稱為邏輯維度表,維度和維度邏輯表通常一一對應。
- 公共匯總粒度事實層(DWS):以分析的主題對象作為建模驅動,基于上層的應用和產品的指標需求,構建公共粒度的匯總指標事實表,以寬表化手段物理化模型。構建命名規范、口徑一致的統計指標,為上層提供公共指標,建立匯總寬表、明細事實表。
公共匯總粒度事實層的表通常也被稱為匯總邏輯表,用于存放派生指標數據。
- 明細粒度事實層(DWD):以業務過程作為建模驅動,基于每個具體的業務過程特點,構建最細粒度的明細層事實表。可以結合企業的數據使用特點,將明細事實表的某些重要維度屬性字段做適當冗余,即寬表化處理。
明細粒度事實層的表通常也被稱為邏輯事實表。
- 公共維度層(DIM):基于維度建模理念思想,建立整個企業的一致性維度。降低數據計算口徑和算法不統一風險。
- 數據應用層ADS(Application Data Service):存放數據產品個性化的統計指標數據。根據CDM與ODS層加工生成。
該數據分類架構在ODS層分為三部分:數據準備區、離線數據和準實時數據區。整體數據分類架構如下圖所示。在本教程中,從交易數據系統的數據經過DataWorks數據集成,同步到數據倉庫的ODS層。經過數據開發形成事實寬表后,再以商品、地域等為維度進行公共匯總。
整體的數據流向如下圖所示。其中,ODS層到DIM層的ETL(萃取(Extract)、轉置(Transform)及加載(Load))處理是在MaxCompute中進行的,處理完成后會同步到所有存儲系統。ODS層和DWD層會放在數據中間件中,供下游訂閱使用。而DWS層和ADS層的數據通常會落地到在線存儲系統中,下游通過接口調用的形式使用。