天天看點

資料倉庫資料分層

為什麼要對資料倉庫分層?

用空間換時間,通過大量的預處理來提升應用系統的使用者體驗(效率),是以資料倉庫會存在大量備援的資料;

如果不分層的話,如果源業務系統的業務規則發生變化将會影響整個資料清洗過程,工作量巨大

通過資料分層管理可以簡化資料清洗的過程,因為把原來一步的工作分到了多個步驟去完成,相當于把一個複雜的工作拆成了多個簡單的工作,把一個大的黑盒變成了一個白盒,每一層的處理邏輯都相對簡單和容易了解,這樣我們比較容易保證每一個步驟的正确性,當資料發生錯誤的時候,往往我們隻需要局部調整某個步驟即可。

資料倉庫标準上可以分為四層:ods(臨時存儲層)、pdw(資料倉庫層)、mid(資料集市層)、app(應用層)

ods層:

為臨時存儲層,是接口資料的臨時存儲區域,為後一步的資料處理做準備。一般來說ods層的資料和源系統的資料是同構的,主要目的是簡化後續資料加工處理的工作。從資料粒度上來說ods層的資料粒度是最細的。ods層的表通常包括兩類,一個用于存儲目前需要加載的資料,一個用于存儲處理完後的曆史資料。曆史資料一般儲存3-6個月後需要清除,以節省空間。但不同的項目要差別對待,如果源系統的資料量不大,可以保留更長的時間,甚至全量儲存;

pdw層:

為資料倉庫層,pdw層的資料應該是一緻的、準确的、幹淨的資料,即對源系統資料進行了清洗(去除了雜質)後的資料。這一層的資料一般是遵循資料庫第三範式的,其資料粒度通常和ods的粒度相同。在pdw層會儲存bi系統中所有的曆史資料,例如儲存10年的資料。

mid層:

為資料集市層,這層資料是面向主題來組織資料的,通常是星形或雪花結構的資料。從資料粒度來說,這層的資料是輕度彙總級的資料,已經不存在明細資料了。從資料的時間跨度來說,通常是pdw層的一部分,主要的目的是為了滿足使用者分析的需求,而從分析的角度來說,使用者通常隻需要分析近幾年(如近三年的資料)的即可。從資料的廣度來說,仍然覆寫了所有業務資料。

app層:

為應用層,這層資料是完全為了滿足具體的分析需求而建構的資料,也是星形或雪花結構的資料。從資料粒度來說是高度彙總的資料。從資料的廣度來說,則并不一定會覆寫所有業務資料,而是mid層資料的一個真子集,從某種意義上來說是mid層資料的一個重複。從極端情況來說,可以為每一張報表在app層建構一個模型來支援,達到以空間換時間的目的資料倉庫的标準分層隻是一個建議性質的标準,實際實施時需要根據實際情況确定資料倉庫的分層,不同類型的資料也可能采取不同的分層方法。

---【補充,也有分三層的】

資料緩存層:

用于存放接口方提供的原始資料的資料庫層,此層的表結構與源資料保持基本一緻,資料存放時間根據資料量大小和項目情況而定,如果資料量較大,可以隻存近期資料,将曆史資料進行備份。此層的目的在于資料的中轉和備份。

核心資料層:

此層的資料在資料緩存層的基礎上做了一定程度的整合,稱之為資料集市,存儲上仍是關系模型。此層的目的在于進行必要的資料整合為下一步多元模型做準備。

分析應用層:

此層的資料為根據業務分析需要構造的多元模型資料。資料可以直接用于分析展現。

說明:資料層次的劃分可以根據實際項目需要進行裁剪,如果業務相對簡單和獨立,可以将核心資料層與分析應用層進行合并。另外,分析應用的資料可以來自多元模型的資料,也可以來自關系模型資料甚至原始資料。

繼續閱讀