1. 程式人生 > >資料倉庫之資料模型

資料倉庫之資料模型

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

dw

本文,主要針對第三塊資料倉庫模型設計來討論交流,尤其是網際網路行業。

一、關於資料倉庫資料模型

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

2. 資料倉庫資料模型的作用:

  • 統一企業的資料檢視;
  • 定義業務部門對於資料資訊的需求;
  • 是構建資料倉庫原子層的基礎;
  • 支援資料倉庫的發展規劃;
  • 初始化業務資料的歸屬;

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

dw4. 資料倉庫資料模型設計的先後次序

  • 概念模型設計(業務模型):界定系統邊界;確定主要的主題域及其內容;
  • 邏輯模型設計:維度建模方法(事實表、維度表);以星型和雪花型來組織資料;
  • 物理模型設計:將資料倉庫的邏輯模型物理化到資料庫的過程;

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

dw

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

dw

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

dw

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

dw

另外,關係模型要求資料以最細粒度存在,而多維模型則以輕粒度彙總資料存在。

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

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

三、網際網路資料倉庫資料模型

1. 網際網路資料倉庫的現實狀況

dw2. 我們的模型方法選擇

dw

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

dw

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