維度建模概念
維度建模(dimensional modeling)是數據倉庫建設中的一種數據建模方法。Kimball 最先提出這一概念。其最簡單的描述就是,按照事實表,維表來構建數據倉庫,數據集市。這種方法的最被人廣泛知曉的名字就是星型模式(Star-schema)。實體關係(E-R)建模通常用於為單位的所有進程創建一個複雜的模型。這種方法已被證實在創建高效的在線上事務處理 (OLTP) 系統方面很有效。相反,維度建模針對零散的業務進程創建個別的模型。例如,銷售信息可以創建為一個模型,庫存可以創建為另一個模型,而客戶帳戶也可以創建為另一個模型。每個模型捕獲事實數據表中的事實,以及那些事實在連結到事實數據表的維度表中的特性。由這些排列產生的架構稱為星型架構或雪花型架構,已被證實在數據倉庫設計中很有效。維度建模將信息組織到結構中,這些結構通常對應於分析者希望對數據倉庫數據使用的查詢方法。1999 年第三季度西北地區的食品銷售額是多少?表示使用三個維度(產品、地理、時間)指定要匯總的信息。
星型模式之所以廣泛被使用,在於針對各個維作了大量的預處理,如按照維進行預先的統計、分類、排序等。通過這些預處理,能夠極大的提升數據倉庫的處理能力。特別是針對 3NF 的建模方法,星型模式在性能上占據明顯的優勢。
同時,維度建模法的另外一個優點是,維度建模非常直觀,緊緊圍繞著業務模型,可以直觀的反映出業務模型中的業務問題。不需要經過特別的抽象處理,即可以完成維度建模。這一點也是維度建模的優勢。
但是,維度建模法的缺點也是非常明顯的,由於在構建星型模式之前需要進行大量的數據預處理,因此會導致大量的數據處理工作。而且,當業務發生變化,需要重新進行維度的定義時,往往需要重新進行維度數據的預處理。而在這些與處理過程中,往往會導致大量的數據冗餘。
另外一個維度建模法的缺點就是,如果只是依靠單純的維度建模,不能保證數據來源的一致性和準確性,而且在數據倉庫的底層,不是特別適用於維度建模的方法。
維度建模步驟
在商業智慧型項目的實施過程中,維度建模技術和企業數據倉庫建模是兩種不同的方法論,以下是在以套用驅動、提供快速原型的商業智慧型項目的實施和規划過程中使用的維度建模方法時的標準實施過程。具體到項目中則根據項目的規模及所涉及的業務範圍而有所補充或裁減。[3]1.商業智慧型項目規劃
a)數據倉庫項目的定義及範圍b)項目準備評估
c)業務合理性證明
2.商業智慧型項目業務需求定義
a)業務需求收集b)業務需求審查
c)數據審計
3.數據倉庫邏輯設計
3.1.維度建模維度建模是一種邏輯設計技術,該技術試圖採用某種直觀的標準框架結構來表現數據,並且允許高性能存取。維度模型是用來設計向最終用戶交付的資料庫的一種快速交付技術。
3.2.定義數據倉庫匯流排結構
a)業務驅動維度建模
b)數據倉庫匯流排結構矩陣
c)一致性維度
d)一致性事實
一致性維度和一致性事實是數據倉庫的“匯流排”
e)單元數據集市
購貨訂單,裝船,付款
來源於單個事務
f)多元數據集市
客戶利潤率,其中描述收益的傳統源必須與描述成本的傳統源組合在一起使用。
來源於多個事務
應該從單元數據集市開始創建數據集市。
g)事務模式數據集市
h)周期快照數據集市
i)累計快照數據集市
3.3.定義高級數據模型邏輯圖
3.4.維度模型的設計過程
a)選取業務處理
b)定義粒度
c)選定維度
d)確定事實
3.5.源數據-目標數據映射(ETL規則定義)
a)維度表映射
b)事實表映射
3.6.產出文檔
a)數據倉庫匯流排結構文檔
b)高級數據模型文檔
c)數據模型及ETL設計文檔
4.數據倉庫物理設計
4.1.創建物理數據模型a)選擇數據建模工具
b)物理數據結構的設計
4.2.制定最初的索引計畫
a)為事實表創建索引
b)為維度表創建索引
4.3.設計和創建資料庫實例
a)保存資料庫創建腳本和參數檔案
b)創建物理存儲結構
4.4.產出文檔
a)數據模型設計文檔
b)資料庫創建腳本文檔
c)資料庫初始化腳本文檔
d)在數據模型及ETL設計文檔中加入相關部分的設計內容
5.ETL設計與開發
5.1.維度表裝載設計5.2.事實表裝載設計
5.3.聚合表和多維在線上分析處理裝載
5.4.數據倉庫的操作與自動化
數據倉庫操作都是在非公開方式下定期執行裝載處理。
5.5.產出文檔
a)項目開發文檔
b)在數據模型及ETL設計文檔中加入相關部分的設計內容
6.多維數據集開發
6.1.數據集市定義a)維度定義
b)度量值組定義
c)計算成員定義
6.2.透視定義
根據用戶套用需求將多個度量值組組合在一起,定義出一個多維數據集的子集。
6.3.產出文檔
a)OLAP多維數據集項目開發文檔
b)OLAP多維數據集業務說明文檔