ER模型:ER(Entity Relationship)實體關系模型在范式理論上符合3NF。數據倉庫中的3NF與OLTP系統中的3NF的區別在于,它是站在企業角度面向主題的抽象,而不是針對某個具體業務流程的實體對象關系的抽象。所以其具有以下幾個特點:
- 需要全面了解企業業務和數據。
- 試試周期非常長。
- 對建模人員的能力要求非常高。
采用ER模型建設數據倉庫模型的出發點是整合數據,將各個系統中的數據以整個企業角度按主題進行相似性組合和合并,并進行一致性處理,為數據分析決策服務,但是并不能直接用于分析決策。
采用ER模型建模一般分為三個階段:
- 高層模型:一個高度抽象的模型,描述主要的主題以及主題間的關系,用于描述企業的業務主題概況。
- 中層模型:在高層模型的基礎上,細化主題的數據項。
- 物理模型(也叫底層模型):在中層模型的基礎上,考慮物理存儲,同時基于性能和平臺特點進行物理模型的設計,也可能做一些表的合并,分區的設計等。
維度模型:從分析決策的需求出發構建模型,為分析需求服務,因此它重點關注用戶如何更快速地完成需求分析,同時具有較好的大規模復雜查詢的響應性能。其典型的代表是星形模型,以及在一些特殊場景下使用的雪花模型。其設計分為一下幾個步驟:
- 選擇需要進行分析決策的業務過程。業務過程可以是單個業務事件,比如交易的支付、退款等;也可以是某個事件的狀態,比如當前的賬戶余額等;還可以是一系列相關業務事件組成的業務流程,具體需要看我們分析的是某些事件發生情況,還是當前狀態,或是事件流轉效率。
- 選擇粒度。在事件分析中,我們要預判所有分析需要細分的程度,從而決定選擇的粒度。粒度是維度的一個組合。
- 識別維表。選擇好粒度之后,就需要基于此粒度設計維表,包括緯度屬性,用于分析時進行分組和篩選。
- 選擇事實。確定分析需要衡量的指標。
Data Vault模型:它是ER模型的衍生,其設計的出發點是為了實現數據的整合,但不能直接用于數據分析決策。
Anchor模型:它對Data Vault模型做了進一步規范化處理,該模型將規范到6NF,基本變成了k-v結構化模型。