數據倉庫建模方法與模型


大數據平台當中的數據倉庫,往往需要通過建模來更好地對數據進行存儲和管理,這其中涉及到性能、成本、效率、質量等多方面的綜合考量,對於工程師來說,也需要細細規划。今天的大數據開發分享,我們主要來講講數據倉庫建模方法與模型。

大數據開發:數據倉庫建模方法與模型

 


數倉建模方法
數據倉庫中幾種經典的數據模型,包括關系建模、維度建模、DataVault模型。在實際工作中,通常會根據業務場景選擇一種或幾種模型。
1、關系建模
關系建模,是數據倉庫之父Inmon推崇的,被稱為“實體-關系”模型,以一種“標准化”的方式存在,強調數據之間非冗余,滿足3NF。關系建模是站在企業角度面向主題的抽象,而不是針對某個具體業務流程的實體對象關系抽象。它更多用於數據的整合和一致性質量。
2、維度建模
維度建模,Ralph Kimball博士最先提出這一概念。其最簡單的描述就是,按照事實表、維表來構建數據倉庫、數據集市。這種方法很多人稱之為星形模型。之所以稱為星形模型是因為它的表示方法是以一顆“星”為中心,周圍圍繞着其他數據結構,如下圖。

大數據開發:數據倉庫建模方法與模型

 


星形模型的中心是一張事實表。事實表是包含大量數據值的一種結構。事實表的周圍是維表,用來描述事實表的某個重要方面。維表里的數據量要比事實表里的少。
星形模型之所以廣泛被使用,在於針對各個維作了大量的預處理,比如按照維進行了預先的排序、分類、統計等。通過這些預處理,能夠極大地提升數據倉庫的處理能力。特別是針對3NF的建模方法,星形模型在性能上占據明顯的優勢。因此,星形模型僅適用於小范圍數據(如一個部門或甚至一個子部門)。
通常星形模型只包含一張事實表。但是在數據庫設計中要創建一種雪花結構的復合結構,需要多張事實表結合。如下圖,描繪了一個雪花模型。

大數據開發:數據倉庫建模方法與模型

 


在雪花模型中,不同的事實表通過共享一個或多個公共維表連接起來。有時稱這些共享的維表為一致維表。
維度建模的最大優點在於訪問的高效性。如果設計適當,通過星形連接將數據傳遞給最終用戶是非常高效的。為了提高傳遞信息的效率,必須收集並吸收最終用戶的請求。最終用戶使用數據的過程是要定義什么樣的多維結構的核心。一旦清楚了最終用戶的請求,這些請求就可以用來最終確定星形模型,形成最理想的結構。
3、Data Vault模型
Data Vault是另一種數據倉庫建模方法,是Dan Linstedt在20世紀90年代提出的,主要用於企業級的數據倉庫建模。
Data Vault需要跟蹤所有數據的來源,因此其中每個數據行都要包含數據來源和裝載時間屬性,用以審計和跟蹤數據值對應的源系統。
Data Vault不區分數據在業務層面的正確與錯誤,它保留操作型系統的所有時間的所有數據,裝載數據時不做數據驗證、清洗等工作,這點明顯有別於其他數據倉庫建模方法。
Data Vault是對ER模型更近一步的規范化,由於對數據的拆解更偏向於基礎數據組織,在處理分析類場景時相對復雜,適合數據倉庫底層構建,目前實際應用場景較少。
關於大數據開發,數據倉庫建模方法與模型,以上就為大家做了簡單的介紹了。數據倉庫建模,是數倉設計當中的重要階段,根據實際的應用需求,選擇合適的方法與模型,是工程師必備的能力之一。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM