資料倉儲維度建模入門

qiulin發表於2017-04-10

對資料分析越來越深入,越來越發現資料標準化的重要性,再高明的資料分析技術,沒有規範統一的資料倉儲,也是“巧婦難為無米之炊”。遂從頭再對資料倉儲技術進行一邊梳理。

1. 維度建模理論概要

1.1 維度設計的主要流程

1.1.1 選擇業務過程

業務過程是組織完成的操作性活動,例如:獲得訂單、處理保險索賠、學生課程註冊或每個月每個賬單的快照等。業務過程事件建立或獲取效能度量,並轉換成事實表中的事實。過程定義了特定的設計目標以及對粒度、維度、事實的定義。

1.1.2 宣告粒度

粒度用於確定某一個事實表中的行表示什麼。粒度宣告是設計必須履行的合同。在選擇維度或事實前必須宣告粒度,某個候選維度或事實必須與定義的粒度保持一致。在所有維度設計中強制實行一致性是保證BI應用效能和易用性的關鍵。

原子粒度是最低階別的粒度。建議從關注原子級別粒度資料開始設計。同時,上卷彙總粒度對效能調整來說非常重要。針對不同的事實表粒度,要建立不同的物理表,在同一事實表中不要混用多種不同的粒度。

1.1.3 確認維度

維度提供圍繞某一業務過程事件所涉及的“誰、什麼、何處、何時、為什麼、如何”等背景。維度表包含BI應用所需要的用於過濾及分類事實的描述性屬性(這也是識別維度的重要依據)。當與跟定的事實錶行關聯時,任何情況下都應使維度保持單一值

資料管理與維度表的開放是資料倉儲建設的主要工作。

1.1.4 確認事實

事實涉及來自業務過程事件的度量,基本上都是以數量值表示。一個事實錶行與按照事實表粒度描述的度量時間之間存在一對一的關係,事實表對應的是一個物理可觀察的事件。所有事實只允許與宣告的粒度保持一致。

1.2 事實表技術基礎

1.2.1 事實表結構

事實表中儲存的是現實世界中所發生的操作性事件所產生的可度量數值。從最低階的原子粒度來看,事實表中一行記錄對應現實世界中的一個度量事件。

事實表的設計完全依賴於物理活動,不受可能產生的最終報表的影響。事實表總是包含外來鍵,用於關聯與之相關的維度,也包含可選的退化維度建和日期/時間戳。查詢請求的主要目標是基於事實表開展計算和聚集操作。

1.2.2 可加、半可加、不可加事實

事實表中的數字度量可劃分為三類:

  • 可加事實

最靈活、最有用的事實是完全可加,可加性度量可以按照與事實表關聯的任意維度彙總。

  • 半可加事實

半可加度量可以對某些維度彙總,但不能對所有維度彙總。差額是常見的半可加事實。

  • 不可加事實

不可加事實對所有的維度不可加,例如比率。

1.2.3 事實表中的空值

事實表中的度量值可以存在空值,因為所有的聚集函式(SUM、COUNT、MIN、MAX、AVG)均可以對空值進行計算。

事實表的維度外來鍵不能存在空值,否則會導致違反參照完整性的情況發生。關聯的維度表必須用預設行(代理鍵)而不是空值外來鍵表示未知的或無法應用的情況

1.2.4 事實表的三種標準型別

  • 事務事實表

事務事實表的一行對應空間或時間上某點的度量事件。原子事務粒度事實表是維度化及可表達的事實表,這類健壯的維度確保對事務資料的最大化分片和分塊。

  • 週期快照事實表

週期快照事實表中的每行彙總了發生在某一個標準週期,如某一天、某周、某月的多個度量事件。粒度是週期性的,而不是個體事務。即使週期內沒有活動發生,也會在事實表中為每個事實插入包含0或空值的行。週期快照事實表的一個典型的應用場景是庫存

  • 累積快照事實表

累積快照事實表的行彙總了發生在過程開始和結束之間可預測步驟內的度量事件。管道或工作流過程(例如,履行訂單或索賠過程)具有定義的開始點,標準中間過程,定義的結束點,它們在此類事實表中都可以被建模。通常在事實表中針對過程中的關鍵步驟都包含時間外來鍵。累積快照事實表中的一行,對應某一具體的訂單,當訂單產生時會插入一行。但管道過程發生時,累積事實錶行被訪問並修改(這是很特別的)。

1.3 維度表技術基礎

1.3.1 維度表結構

每個維度表都包含單一的主鍵列。維度表的主鍵可以作為與之關聯的任何事實表的外來鍵,當然,維度錶行的技術定義應與事實錶行完全對應。

維度表通常比較寬,是扁平型非規範表,包含大量的低粒度的文字屬性。操作程式碼與指示器可作為屬性對待,最強有力的維度屬性採用冗長的描述填充。

維度表屬性是查詢及BI應用的約束和分組定義的主要目標。報表的描述性標識通常是維度表屬性領域值。

1.3.2 維度代理鍵

維度表中會包含一個列,表示唯一主鍵。該主鍵不是操作性系統的自然間。 維度主鍵通常是無意義的整型主鍵,是按順序分配的簡單整數,以值1開始,每次分配自動加1。但日期維度不需要遵守代理鍵規則。

1.3.3 一致性維度

當不同的維度表屬性具有相同的列名和領域內容時,稱維度表具有一致性。

1.3.4 緩慢變化維度

型別:

  1. 原樣保留

  2. 重寫

  3. 增加新行

  4. 增加新屬性

  5. 增加微型維度

  6. 增加微型維度及型別1支架

  7. 增加型別1屬性到型別2維度

  8. 雙型別1和型別2維度

相關文章