資料倉庫之資料模型
關於資料倉庫的概念,這裡不再累贅。先看下面的圖(資料倉庫建設的7個主要環節):
本文,主要針對第三塊資料倉庫模型設計來討論交流,尤其是網際網路行業。
一、關於資料倉庫資料模型
1. 資料倉庫資料模型是指使用實體、屬性及其關係對企業運營和邏輯規則進行統一的定義、編碼和命名;是業務人員和開發人員之間溝通的一套語言。
2. 資料倉庫資料模型的作用:
- 統一企業的資料檢視;
- 定義業務部門對於資料資訊的需求;
- 是構建資料倉庫原子層的基礎;
- 支援資料倉庫的發展規劃;
- 初始化業務資料的歸屬;
3. 資料倉庫資料模型與業務系統資料模型設計的區別:
4. 資料倉庫資料模型設計的先後次序
- 概念模型設計(業務模型):界定系統邊界;確定主要的主題域及其內容;
- 邏輯模型設計:維度建模方法(事實表、維度表);以星型和雪花型來組織資料;
- 物理模型設計:將資料倉庫的邏輯模型物理化到資料庫的過程;
二、關於維度模型和關係模型
關係建模又叫ER建模,是資料倉庫之父Inmon推崇的,其從全企業的高度設計一個3NF模型的方法,用實體加關係描述的資料模型描述企業業務架構,在正規化理論上符合3NF,其是站在企業角度進行面向主題的抽象,而不是針對某個具體業務流程的,它更多是面向資料的整合和一致性治理,正如Inmon所希望達到的“single version of the truth”。
維度模型則是資料倉庫領域另一位大師Ralph Kimball 所倡導的。維度建模以分析決策的需求為出發點構建模型,一般有較好的大規模複雜查詢的響應效能,更直接面向業務,典型的代表是我們比較熟知的星形模型,以及在一些特殊場景下適用的雪花模型。
兩者的主要區別在於靈活性和效能方面。
另外,關係模型要求資料以最細粒度存在,而多維模型則以輕粒度彙總資料存在。
(記得十年前,某大型保險公司實施EDW專案,採用的就是關係模型,由IBM專門的團隊負責建模,好傢伙)。
在我看來,如果不是實施業務相對成熟的EDW,大多資料倉庫均會採用維度模型建模;
三、網際網路資料倉庫資料模型
1. 網際網路資料倉庫的現實狀況
2. 我們的模型方法選擇
在我們的資料倉庫中,除了各個主題域下的維度模型,還存在一些寬表模型。所謂寬表模型,是基於維度模型的擴充套件,採用退化維度的方式,將不同維度的度量放入資料表的不同的列中;它更易於理解,具有更高的查詢效率;易於模型擴充套件;
事實證明,在海量資料環境下,對業務查詢的支撐,寬表在效能和易用性方面,都達到了比較理想的效果。