數據倉庫分層

爲何要對數據倉庫分層:
a)用空間換時間,經過大量的預處理來提高應用系統的用戶體驗(效率),所以數據倉庫會存在大量冗餘的數據;數據庫

b)若是不分層的話,若是源業務系統的業務規則發生變化將會影響整個數據清洗過程,工做量巨大緩存

c)經過數據分層管理能夠簡化數據清洗的過程,由於把原來一步的工做分到了多個步驟去完成,至關於把一個複雜的工做拆成了多個簡單的工做,把一個大的黑盒變成了一個白盒,每一層的處理邏輯都相對簡單和容易理解,這樣咱們比較容易保證每個步驟的正確性,當數據發生錯誤的時候,每每咱們只須要局部調整某個步驟便可。接口


數據倉庫標準上能夠分爲四層:ODS(臨時存儲層)、PDW(數據倉庫層)、MID(數據集市層)、APP(應用層)效率


ODS層:
爲臨時存儲層,是接口數據的臨時存儲區域,爲後一步的數據處理作準備。通常來講ODS層的數據和源系統的數據是同構的,主要目的是簡化後續數據加工處理的工做。從數據粒度上來講ODS層的數據粒度是最細的。ODS層的表一般包括兩類,一個用於存儲當前須要加載的數據,一個用於存儲處理完後的歷史數據。歷史數據通常保存3-6個月後須要清除,以節省空間。但不一樣的項目要區別對待,若是源系統的數據量不大,能夠保留更長的時間,甚至全量保存;基礎


PDW層:
爲數據倉庫層,PDW層的數據應該是一致的、準確的、乾淨的數據,即對源系統數據進行了清洗(去除了雜質)後的數據。這一層的數據通常是遵循數據庫第三範式的,其數據粒度一般和ODS的粒度相同。在PDW層會保存BI系統中全部的歷史數據,例如保存10年的數據。用戶體驗

MID層:
爲數據集市層,這層數據是面向主題來組織數據的,一般是星形或雪花結構的數據。從數據粒度來講,這層的數據是輕度彙總級的數據,已經不存在明細數據了。從數據的時間跨度來講,一般是PDW層的一部分,主要的目的是爲了知足用戶分析的需求,而從分析的角度來講,用戶一般只須要分析近幾年(如近三年的數據)的便可。從數據的廣度來講,仍然覆蓋了全部業務數據。方法


APP層:
爲應用層,這層數據是徹底爲了知足具體的分析需求而構建的數據,也是星形或雪花結構的數據。從數據粒度來講是高度彙總的數據。從數據的廣度來講,則並不必定會覆蓋全部業務數據,而是MID層數據的一個真子集,從某種意義上來講是MID層數據的一個重複。從極端狀況來講,能夠爲每一張報表在APP層構建一個模型來支持,達到以空間換時間的目的數據倉庫的標準分層只是一個建議性質的標準,實際實施時須要根據實際狀況肯定數據倉庫的分層,不一樣類型的數據也可能採起不一樣的分層方法。數據

---【補充】
數據緩存層:
用於存放接口方提供的原始數據的數據庫層,此層的表結構與源數據保持基本一致,數據存放時間根據數據量大小和項目狀況而定,若是數據量較大,能夠只存近期數據,將歷史數據進行備份。此層的目的在於數據的中轉和備份。項目

核心數據層:
此層的數據在數據緩存層的基礎上作了必定程度的整合,稱之爲數據集市,存儲上還是關係模型。此層的目的在於進行必要的數據整合爲下一步多維模型作準備。時間

分析應用層: 此層的數據爲根據業務分析須要構造的多維模型數據。數據能夠直接用於分析展示。 說明:數據層次的劃分能夠根據實際項目須要進行裁剪,若是業務相對簡單和獨立,能夠將核心數據層與分析應用層進行合併。另外,分析應用的數據能夠來自多維模型的數據,也能夠來自關係模型數據甚至原始數據。

相關文章
相關標籤/搜索