數據倉庫入門,看這一篇文章就夠了

眾所周知,做數據分析、BI建設,都離不開數據倉庫建設,數倉建設的本質目的是支撐分析決策。今天跟著我來學學數據倉庫的基礎知識,通過本文的閱讀,你將獲得以下方面的認知:

  1. 什麼是數倉
  2. 數倉的核心概念
  3. 數倉的分層架構
數據倉庫入門,看這一篇文章就夠了

網絡圖片


數據倉庫概述

數據倉庫,顧名思義,就是存儲數據的倉庫。

現實中的倉庫會有不同的分區和歸類,分區下有多個貨架,貨架上堆放著各種各樣的商品。對於數據倉庫來說,分區歸類就類似於數據倉庫的基礎架構,數據倉庫的數據存儲結構(如表)就是倉庫的貨架,而商品則是對應數據倉庫實際存儲的各種數據。無論是什麼樣的倉庫,無論倉庫大小,其目的都是為了實現物品的集中管理、有序存取,數據倉庫也是一樣,它管理存儲的是數據以及數據結構。

其實業界對於數據倉庫早已有了廣泛認可的定義,即:數據倉庫是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策。

數據倉庫本質上是一種特殊的數據組織形式:

  1. 面向主題,即數據倉庫中表的設計是按照一個個主題進行組織的而非按照業務流程設計;
  2. 集成性,是指將企業中各大業務系統進行數據集中、整合、加工從而形成全局統一的數據視圖;
  3. 相對穩定,則是指數據倉庫中的數據不會做頻繁的增刪改操作,相對於業務系統中頻繁的事務處理,其數據變化相對穩定;
  4. 反應歷史變化,表明數據倉庫通常會保存數據的歷史備份,因此就可以從中獲取數據歷史變化情況。

數據倉庫的這些特性滿足了分析型應用的需求,可以更好的幫助企業制定管理決策。

數據倉庫核心概念

理解完數據倉庫基本概念和特性,接著我們來學習下數據倉庫的核心概念。

  1. 概念一 —— 維度

維度是一個與業務相關的觀察角度,比如我們從地區角度觀察哪個地區的銷售額最多,那麼地區就是一個維度。在數據倉庫中我們將這些維度信息存儲成一張張數據庫表,我們稱之為維表。

維表主要分為:單級維、層級維、變化維。

  • 單級維是指一對一的代碼表,不存在層級關係,最主要的作用是將事實表中的代碼顯示為標題(名稱)。
  • 層級維是具有分層結構的維度表,比如地區維,層級往上可以到區、市、省、國家等。
  • 緩慢變化維是隨著時間屬性變化的,如機構維,機構名稱會隨時間而改變。

維表通常由維主鍵編碼和維度名稱以及其他屬性字段組成。

2.概念二 —— 度量。

度量是反映企業運行情況或狀態的一些數值指標,是業務量化的表示,可以用來監測業務的成效,比如銷售額、利潤來反應企業業績。

3.概念三 —— 事實表

事實表也被稱為主題表,它是由若干維度和度量組合而成,表達期望分析的主題。事實表中的多個維度的組合決定了事實表的數據詳細程度,這種詳細程度我們稱之為顆粒度。以顆粒度來劃分主題表的話,通常會有三種事實表:事務粒度事實表、週期快照粒度事實表、累積快照粒度事實表。

以一個例子來說明,比如某個商品的一筆銷售記錄,我們用表記錄下來,這條記錄已經是最小的數據記錄單元,不可再分,因此它是一個事務粒度的事實表,我們將這張表按自然月進行彙總得到該商品月度銷售情況,那麼這張表就是按一定週期記錄事實,我們稱之為週期快照粒度事實表。最後一種累積快照事實表,則記錄覆蓋整個生命週期過程中的不同階段的關鍵信息,如訂單累積快照事實表,包括下單時間、付款時間、發貨時間、收貨時間等,通過多個時間字段記錄訂單從產生到業務完結的關鍵節點,在訂單的不同階段,這些時間字段逐步被填充。

在數據倉庫中,維度表和事實表的設計需要遵循一些重要原則,即一致性維度和一致性事實。

所謂一致性維度是指在同一個集市內,兩個維度如果有關係,要麼就是完全一樣的,要麼就是一個維度在數學意義上是另一個維度的子集,例如,如果建立月維度話,月維度的各種描述必須與日期維度中的完全一致,最常用的做法就是在日期維度上建立視圖生成月維度。這樣月維度就可以是日期維度的子集,在後續鑽取等操作時可以保持一致;

所謂一致性事實,即是指表達相同業務含義的度量(或稱為指標)需要在描述定義和計算口徑、度量單位等保持一致,杜絕系統間同詞不同義或同義不同詞的問題。

數據倉庫分層架構

數據倉庫有分層結構,每個分層結構都有各自的作用,大抵上分層結構分為:貼源層、整合層、集市層、彙總層。

  • 貼源層,就是將所有涉及業務系統的數據抽取到這一層集中存放,同時也會保留歷史數據,這一層基本保留了與源系統一樣的結構和數據。
  • 整合層,會保留最細顆粒的所有歷史數據,它面向主題、規範化建模,站在全局的視角上規劃主題、整合業務模型,在數據模型維度上完成重大的轉變。
  • 集市層,面向某個業務主題的多維模型集合。通過預計算、預連接、維度規範化等方式進一步將業務系統的範式模型轉變成面向主題的多維模型。
  • 彙總層,它應技術或業務需要而建,直面需求,方便展現,同時提高數據的存儲性能。

數據倉庫分層架構從整體上來看,是將數據從分散到集中、從細粒度到高度彙總、從業務模型到分析型模型轉變的過程,從而更好的為分析型系統提供後臺數據支撐。

數據倉庫建設工具

數據倉庫誕生已久,在此過程中,湧現了諸多優秀的數倉建設工具,有國內外的,有開源的有商業的,如常用建模工具有Erwin、PowerDesigner等,還有一些國內建模ETL工具,比如億信華辰的數據工廠系統EsDataFactory。

EsDataFactory集建模和ETL於一體,內置經典的數倉分層理念和豐富的數據處理組件,同時結合十多年的數倉實施經驗,開發了批量建模、ETL快捷建模等多種建模方式,有效提升開發效率,更貼近實際數倉建設場景,可以快速幫助企業搭建數倉模型,完成 ETL敏捷開發。

數據倉庫作為分析型系統的理論模型被逐漸應用完善,發展到今天,數據倉庫已經成為企業信息化建設必不可少的重要支撐。如對數據倉庫感興趣,敬請期待下次分享具體的建設方案。


分享到:


相關文章: