Kimball維度建模基本理論

本文相關基本理論摘錄自《數據倉庫工具箱–維度建模的完全指南-第二版》和《數據倉庫聲明週期工具箱》

維度建模介紹

維度建模是一種將數據結構化的邏輯設計方法,將客觀世界劃分爲度量和上下文。機構的每一個業務過程都可以使用維度模型來描述,維度模型由一系列含有數值型度量的事實表組成,而事實表中的數值型度量則被一系列帶有文本形式上下文的維度表所環繞。
度量(事實)

由機構的業務過程和支持他們的業務源系統來捕捉的。常以數值形式出現,以此稱爲“事實

上下文(維)

就是解釋度量中數值的具體含義,上下文是圍繞這度量存在的,只有當事實被記錄時上下文才爲真。上下文被直觀的分割成多個獨立的邏輯塊,我們稱爲“”。維度描述了度量上下文的5W(who,what,when,where,why)信息,以及這些上下文是如何作用的。

維度建模的優點
  • 可理解性,易於使用
  • 查詢性能高
  • 修改的靈活度高

一、事實表

事實表: 存儲了從機構業務活動或者事件中提煉出來的性能度量。術語 “事實” 就是指每種性能度量 ,事實表的一行對應一個度量值,所有度量值必須具有相同的粒度。
(1)事實表粒度都歸屬於三類:

1. 事務粒度事實表 : 粒度是每一行對應一個事務,事務粒度是空間和時間的焦點,一個事務粒度上的度量必須在那個時刻爲真。事務事實表在活動發生時纔會插入行。
2. 週期快照事實表:能夠按照一個定義良好的時間週期間隔來捕捉業務過程的執行情況,並且將這些描述裝載到事實表中。
3. 積累快照事實表:用於描述業務過程(有明確的開端和結尾)中某個不確定時間跨度裏的活動。

事務和快照是數據倉庫的陰陽兩面,事務是展現細節行爲最爲完整的視圖,快照使我們迅速而容易的監視總體執行情況

(2)事實表的字段分類

1. 可加性: 例如 條數,金額等
2. 半可加性 : 表示某一時間點的強度度量,例如: 庫存量,賬戶結餘
3. 完全不可加性: 例如: 單位價格,溫度等

備註:百分比和比率這類數值都是非加性的分子與分母都應該存在事實表中。可以利用數據存取工具計算出事實表中任何數據形式的比率,要記住,求取的是合計值的比率而不是比率的求和

二、維度表

(1) 時間維度

每個事實表都是一個觀測值的時間序列,事實表總是有一個或者多個日期維。下圖顯示了一個以天爲粒度的標準日期維度表。
在這裏插入圖片描述

(2)退化維

定義: 像訂單號,發票號,機票號等這類編號正是設計父-子關係的事務處理系統時所用到的父標題鍵,不要忽略這些標題編號,而是應當直接添加到事實表中,標題票號可以作爲維度鍵,但是如果像事務日期和客戶維那樣將標題記錄信息分解成獨立的維,那麼這個維就沒有其他屬性了。我們稱之爲退化維
退化維常常出現在事務事實表的設計過程中,本身就具有一種父-子關係的數據結構

個人理解: 退化維就是沒有對應維度表的維度,本質上它是存在於事實表中,並且相應的編碼,號碼字段沒有與之對應的維度表,因爲此類維度沒有對應的上下文解釋。但是,退化維在事實表中普遍存在,並且經常會和其他一些維度組合形成事實表的主鍵。

例如:在Kimball提出的維度建模中,事實表應該保存最細粒度的數據。所以對於象銷售單這樣的事實表來說,需要銷售單編號和產品來共同作爲主鍵,而不能用銷售日期、商場、產品等用來分析的維度共同作爲主鍵。

(3)緩慢變化維
  • 類型一: 覆蓋維度屬性
  • 類型二: 添加一個新的維度行
  • 類型三: 添加一個新的維度屬性
  • 類型四: 微型維,添加一個新維,將經常變化的客戶屬性分解開放到獨立的維度表中。原理就是將變化頻率比較大的維度拆分出來單獨作爲維度表處理。

關於SCD的詳細介紹參照博客 緩慢變化維(SCD)的處理方法

(4)雪花型和支架
當冗餘屬性和譯碼都被轉移到單獨的表,並且通過人工鍵連接到原始表時,維就變成了雪花型了。
支架是一個統計屬性集合,存在於每個轄區層次,一個轄區的所有客戶都共享一個相同的屬性集合。

例如:
在這裏插入圖片描述

(4)維度屬性應該具有以下特點
  1. 是冗長的
  2. 是描述性的
  3. 是完整性的-沒有遺漏值
  4. 是離散取值的
  5. 質量是有保證的
(5) 事實表和維度表的判斷
一個比較好的經驗性法則是看看屬性是否是離散取值的,以及是否用過過濾和標記。如果滿足這些條件就應當放在維度表中。如果屬性有許多值可選,並且可以用於計算,則應該將其放入事實表。

供應鏈管理: 一個產品的流動過程是從獲取原材料到加工稱爲成品,再到最終交付給客戶的整個過程,從原始起點到消費終點的整個流程的管理 唱唱是被稱作“供應鏈管理”

(6) 一致性維度
一致性維度是企業數據倉庫的“總線”, 一個強大的基於一致性維度的架構將一組業務過程緊密聯繫到一起就形成了企業數據倉庫。

一致性維度對於企業級的數據倉庫極爲重要,有以下優點:

  • 1 一致性: 每個事實表都使用一致的過濾條件,產生的查詢結果集合也被唯一地標識。
  • 2 集成: 首先單獨查詢每個事實表,最後將結果集連接到一個公共的維度屬性上
  • 3 開發週期短:若一致性維度建立起來,後續的項目開發時間會極大的縮減,不需要重複創建相關的維度表
發佈了10 篇原創文章 · 獲贊 12 · 訪問量 1898
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章