Data VauIt建模理論及應用場景

DataVault模型

  • DataVault是在ER模型的基礎上衍生而來的,模型設計的初衷是有效的組織基礎數據層,使之易擴展、靈活的應對業務變化,同時強調歷史性、可追溯性和原子性,不要求對數據進行過度的一致性處理;並非針對分析場景所設計。
  • Data Vault模型是一種中心輻射式模型,其設計重點圍繞着業務鍵的集成模式。這些業務鍵是存儲在多個系統中的、針對各種信息的鍵,用於定位和唯一標識記錄或數據。

包含3種基本結構:

  • 中心表——Hub
    唯一業務鍵的列表,唯一標識企業實際業務,企業的業務主體集合。
  • 鏈接表——Link
    表示中心表之間的關係,通過鏈接表串聯整個企業的業務關聯關係。
  • 衛星表——Satellite
    歷史的描述性數據,數倉中數據的真正載體。

中心表——Hub

只包含業務主鍵信息以及數據裝載的描述,不包含非鍵值以外的業務數據屬性本身;比如中心表商品,在Data Vault下的設計:


中心表一般都會在創建一個主鍵Hub_商品ID,與業務商品ID無關,一般稱爲代理鍵或者附加鍵。
PS: 大家會發現這張中心表中沒有商品屬性信息;商品屬性以及描述信息,都屬於衛星表的範疇。

 

鏈接表——Link

鏈接表用來描述中心表間的關聯關係,亦不包含業務鍵值以及數據裝載描述以外的任何非鍵值數據,比如:學生授課鏈接表,其設計:

 

 

與授課相關的課時數等描述信息,都屬於衛星表的範疇。

衛星表——Satellite

數倉中數據的主要載體,包括對鏈接表、中心表的數據描述、數值度量等信息,中心表商品、訂單明細的衛星表分別如下:

 

案例:

對上一篇已經討論到的學生選課ER模型,進行Data Vault模型重構,原模型:

 

原則:

  1. 梳理所有主要實體。
  2. 將有入邊的實體定義爲中心表
  3. 將沒有入邊且只有一個出邊的表定義爲中心表
  4. 源系統沒有入邊且有兩條或以上出邊的表定義爲鏈接表
  5. 將外鍵關係定義爲鏈接表

按Data Vault改造後的大概模型

  • hub——中心表

  • link——鏈接表

  • sat——衛星表

     

  • Data Vault模型更容易設計,ETL過程中更易配置化實現。

  • Hub想象成人體的骨架,那麼Link就是連接骨架的韌帶組織,而satelite就是骨架上的血肉。

  • Data Vault是對ER模型更近一步的規範化,由於對數據的拆解和更偏向於基礎數據組織,在處理分析類場景時相對複雜,適合數倉底層構建,目前實際應用場景較少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章