DataVault模型
- DataVault是在ER模型的基礎(chǔ)上衍生而來的,模型設(shè)計的初衷是有效的組織基礎(chǔ)數(shù)據(jù)層锦茁,使之易擴(kuò)展统屈、靈活的應(yīng)對業(yè)務(wù)變化驱证,同時強(qiáng)調(diào)歷史性、可追溯性和原子性恋脚,不要求對數(shù)據(jù)進(jìn)行過度的一致性處理腺办;并非針對分析場景所設(shè)計。
- Data Vault模型是一種中心輻射式模型糟描,其設(shè)計重點圍繞著業(yè)務(wù)鍵的集成模式怀喉。這些業(yè)務(wù)鍵是存儲在多個系統(tǒng)中的、針對各種信息的鍵船响,用于定位和唯一標(biāo)識記錄或數(shù)據(jù)躬拢。
包含3種基本結(jié)構(gòu):
- 中心表——Hub
唯一業(yè)務(wù)鍵的列表躲履,唯一標(biāo)識企業(yè)實際業(yè)務(wù),企業(yè)的業(yè)務(wù)主體集合估灿。 - 鏈接表——Link
表示中心表之間的關(guān)系崇呵,通過鏈接表串聯(lián)整個企業(yè)的業(yè)務(wù)關(guān)聯(lián)關(guān)系。 - 衛(wèi)星表——Satellite
歷史的描述性數(shù)據(jù)馅袁,數(shù)倉中數(shù)據(jù)的真正載體域慷。
中心表——Hub
只包含業(yè)務(wù)主鍵信息以及數(shù)據(jù)裝載的描述,不包含非鍵值以外的業(yè)務(wù)數(shù)據(jù)屬性本身汗销;比如中心表商品犹褒,在Data Vault下的設(shè)計:
中心表一般都會在創(chuàng)建一個主鍵Hub_商品ID,與業(yè)務(wù)商品ID無關(guān)弛针,一般稱為代理鍵或者附加鍵叠骑。
PS: 大家會發(fā)現(xiàn)這張中心表中沒有商品屬性信息;商品屬性以及描述信息削茁,都屬于衛(wèi)星表的范疇宙枷。
鏈接表——Link
鏈接表用來描述中心表間的關(guān)聯(lián)關(guān)系,亦不包含業(yè)務(wù)鍵值以及數(shù)據(jù)裝載描述以外的任何非鍵值數(shù)據(jù)茧跋,比如:學(xué)生授課鏈接表慰丛,其設(shè)計:
與授課相關(guān)的課時數(shù)等描述信息,都屬于衛(wèi)星表的范疇瘾杭。
衛(wèi)星表——Satellite
數(shù)倉中數(shù)據(jù)的主要載體诅病,包括對鏈接表、中心表的數(shù)據(jù)描述粥烁、數(shù)值度量等信息贤笆,中心表商品、訂單明細(xì)的衛(wèi)星表分別如下:
案例:
對上一篇已經(jīng)討論到的學(xué)生選課ER模型讨阻,進(jìn)行Data Vault模型重構(gòu)芥永,原模型:
原則:
- 梳理所有主要實體。
- 將有入邊的實體定義為中心表钝吮。
- 將沒有入邊且只有一個出邊的表定義為中心表恤左。
- 源系統(tǒng)沒有入邊且有兩條或以上出邊的表定義為鏈接表。
- 將外鍵關(guān)系定義為鏈接表
按Data Vault改造后的大概模型
hub——中心表
link——鏈接表
-
sat——衛(wèi)星表
Data Vault模型更容易設(shè)計搀绣,ETL過程中更易配置化實現(xiàn)飞袋。
Hub想象成人體的骨架,那么Link就是連接骨架的韌帶組織链患,而satelite就是骨架上的血肉巧鸭。
Data Vault是對ER模型更近一步的規(guī)范化,由于對數(shù)據(jù)的拆解和更偏向于基礎(chǔ)數(shù)據(jù)組織麻捻,在處理分析類場景時相對復(fù)雜纲仍,適合數(shù)倉底層構(gòu)建呀袱,目前實際應(yīng)用場景較少。