數據倉庫之數據模型

關於數據倉庫的概念,這裡不再累贅。先看下面的圖(數據倉庫建設的7個主要環節):

本文,主要針對第三塊數據倉庫模型設計來討論交流,尤其是互聯網行業。

一、關於數據倉庫數據模型

1. 數據倉庫數據模型是指使用實體、屬性及其關係對企業運營和邏輯規則進行統一的定義、編碼和命名;是業務人員和開發人員之間溝通的一套語言。

2. 數據倉庫數據模型的作用:

· 統一企業的數據視圖;

· 定義業務部門對於數據信息的需求;

· 是構建數據倉庫原子層的基礎;

· 支持數據倉庫的發展規劃;

· 初始化業務數據的歸屬;

3. 數據倉庫數據模型與業務系統數據模型設計的區別:

4. 數據倉庫數據模型設計的先後次序

· 概念模型設計(業務模型):界定系統邊界;確定主要的主題域及其內容;

· 邏輯模型設計:維度建模方法(事實表、維度表);以星型和雪花型來組織數據;

· 物理模型設計:將數據倉庫的邏輯模型物理化到資料庫的過程;

二、關於維度模型和關係模型

關係建模又叫ER建模,是數據倉庫之父Inmon推崇的,其從全企業的高度設計一個3NF模型的方法,用實體加關係描述的數據模型描述企業業務架構,在範式理論上符合3NF,其是站在企業角度進行面向主題的抽象,而不是針對某個具體業務流程的,它更多是面向數據的整合和一致性治理,正如Inmon所希望達到的「single version of the truth」。

維度模型則是數據倉庫領域另一位大師Ralph Kimball 所倡導的。維度建模以分析決策的需求為出發點構建模型,一般有較好的大規模複雜查詢的響應性能,更直接面向業務,典型的代表是我們比較熟知的星形模型,以及在一些特殊場景下適用的雪花模型。

兩者的主要區別在於靈活性和性能方面。

另外,關係模型要求數據以最細粒度存在,而多維模型則以輕粒度匯總數據存在。

(記得十年前,某大型保險公司實施EDW項目,採用的就是關係模型,由IBM專門的團隊負責建模,好傢夥)。

在我看來,如果不是實施業務相對成熟的EDW,大多數據倉庫均會採用維度模型建模;

三、互聯網數據倉庫數據模型

1. 互聯網數據倉庫的現實狀況

2. 我們的模型方法選擇

在我們的數據倉庫中,除了各個主題域下的維度模型,還存在一些寬表模型。所謂寬表模型,是基於維度模型的擴展,採用退化維度的方式,將不同維度的度量放入數據表的不同的列中;它更易於理解,具有更高的查詢效率;易於模型擴展;

事實證明,在海量數據環境下,對業務查詢的支撐,寬表在性能和易用性方面,都達到了比較理想的效果。


推薦閱讀:

建設數據倉庫的八個步驟
《數據架構》閱讀筆記(四)Data Vault
為什麼我們需要數據倉庫
星型模型和雪花型模型比較
《數據架構》閱讀筆記(十)作業分析2

TAG:大數據 | 數據倉庫 |