數據倉庫的分層結構

爲什麼要分層?

分層的主要原因是在管理數據的時候,能對數據有一個更加清晰的掌控,詳細來講,主要有下面幾個原因:

  • 數據結構清晰,每一個數據分層都有它的作用域,這樣我們在使用表的時候能更方便地定位和理解。
  • 方便數據血緣追蹤,簡單來說,我們最終給業務呈現的是一個能直接使用業務表,但是它的來源有很多,如果有一張來源表出問題了,我們希望能夠快速準確地定位到問題,並清楚它的危害範圍。
  • 減少重複開發,規範數據分層,開發一些通用的中間層數據,能夠減少極大的重複計算。
  • 把複雜問題簡單化,將一個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。而且便於維護數據的準確性,當數據出現問題之後,可以不用修復所有的數據,只需要從有問題的步驟開始修復。
  • 屏蔽原始數據的異常
  • 屏蔽業務的影響,不必改一次業務就需要重新接入數據

一般的數據倉庫大致會分爲操作數據層(Operational Data Store, ODS)、明細數據層(Data Warehouse Detail , DWD )、彙總數據層(Data Warehouse Summary, DWS )和應用數據層(Application Data Store, ADS)。

ODS層

ODS層屬於操作數據層,數據準備區,數據來源是各業務系統的源數據,物理模型和業務模型一致。通過數據抽取將數據裝載到數據倉庫ODS層,不做清洗轉換。

DWD層

數據來源ODS層,是DW明細事實層,數據模型與ODS一致,爲EDW提供各主體業務明細數據。根據ODS增量數據與相關DWD表進行merge生成全量數據,不做清洗轉換,保留原始全量數據。

DW層

數據來自DWD層,是DW事實層,採用維度建模,星型架構,這一層可細分爲dwb和dws。爲EDW提供各種統計彙總數據。DWB是根據DWD明細數據進行清洗轉換,如維度轉代理鍵、身份證清洗、會員註冊來源清洗、字段合併、空值處理、髒數據處理、IP清洗轉換、賬戶餘額清洗 、資金來源清洗等。DWS是根據DWB層數據按各個維度ID進行粗粒度彙總聚合,如按交易來源,交易類型進行彙總。

DM層

數據來自DW層,採用維度建模,星型架構。這一層可以是一些寬表,是根據DW層數據按照各種維度或多種維度組合把需要查詢的一些事實字段進行彙總統計並作爲單獨的列進行存儲,滿足一些特定查詢、數據挖掘應用。將事實拉寬,度量預先計算,儘量減少數據訪問時計算,優化檢索。

ST層

數據來自DW層,採用維度建模,星型架構。前端報表展現,主題分析,KPI報表。從DW層的數據進行粗粒度聚合彙總;如按年、月、季、天對一些維度進行聚合生成業務需要的事實數據。
 

五層模型架構特點

細化DW建模

  • 對DW中各個主題業務建模進行了細分,每個層次具有不同的功能
  • 保留了最細粒度數據
  • 滿足了不同維度,不同事實的信息

滿足數據重新生成

  • 不同層次的數據支持數據重新生成
  • 無需備份恢復
  • 解決了由不同故障帶來的數據質量問題
  • 消除了重新初始化數據的煩惱

減少應用對DW的壓力

  • 以業務應用驅動爲嚮導建模,通過ST、DM層提供數據
  • 避免直接操作基礎事實表
  • 降低數據獲取時間

快速適應需求變更

  • 適應維度變化
  • 明細基礎數據層穩定,適應前端應用層業務需求變更
  • 所有前端應用層模型之間不存在依賴,需求變更對DW整個模型影響範圍小
  • 能適應短週期內上線下線需求

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章