hive建模方法


轉自:https://www.jianshu.com/p/8378b80e4b21

概述數據倉庫這個概念是由 Bill Inmon 所提出的,其功能是將組織通過聯機事務處理(OLTP)所積累的大量的資料和數據,通過數據倉庫理論所特點有的信息存儲架構,進行系統的分析整理,利用各種的分析方法,比如聯機分析處理(OLAP),數據挖掘(Data Mining),進而支持如決策支持系統(DSS)、主管資訊系統(EIS)的創建,幫助決策者能快速有效的自大量資料中,分析出有價值的資訊,以利決策擬定及快速回應外在環境變動,幫助建構商務智能(BI)。Bill Inmon 在 "Build the Data Warehouse" 一書中所提出了數據倉庫的定義—— 數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策(Decision Making Support)。數據倉庫的建模方法有很多種,每一種建模方法代表了哲學上的一個觀點,代表了一種歸納、概括世界的一種方法。常見的有 范式建模法、維度建模法、實體建模法等,每種方法從本質上將是從不同的角度看待業務中的問題,不管是從技術層面還是從業務層面,都代表了哲學上的一種世界觀。范式建模法(Third Normal Form,3NF)范式建模法其實是我們在構建數據模型常用的一個方法,該方法的主要由 Inmon 所提倡,主要解決關系型數據庫得數據存儲,利用的一種技術層面上的方法。目前,我們在關系型數據庫中的建模方法,大部分采用的是三范式建模法。范式 是符合某一種級別的關系模式的集合。構造數據庫必須遵循一定的規則,而在關系型數據庫中這種規則就是范式,這一過程也被稱為規范化。目前關系數據庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。在數據倉庫的模型設計中,一般采用第三范式。一個符合第三范式的關系必須具有以下三個條件 :    每個屬性值唯一,不具有多義性 ;    每個非主屬性必須完全依賴於整個主鍵,而非主鍵的一部分 ;    每個非主屬性不能依賴於其他關系中的屬性,因為這樣的話,這種屬性應該歸到其他關系中去。根據 Inmon 的觀點,數據倉庫模型得建設方法和業務系統的企業數據模型類似。在業務系統中,企業數據模型決定了數據的來源,而企業數據模型也分為兩個層次,即主題域模型和邏輯模型。同樣,主題域模型可以看成是業務模型的概念模型,而邏輯模型則是域模型在關系型數據庫上的實例話。

范式建模法

從業務數據模型轉向數據倉庫模型時,同樣也需要有數據倉庫的域模型,即概念模型,同時也存在域模型的邏輯模型。這里,業務模型中的數據模型和數據倉庫的模型稍微有一些不同。主要區別在於:數據倉庫的域模型應該包含企業數據模型得域模型之間的關系,以及各主題域定義。數據倉庫的域模型的概念應該比業務系統的主題域模型范圍更加廣。在數據倉庫的邏輯模型需要從業務系統的數據模型中的邏輯模型中抽象實體,實體的屬性,實體的子類,以及實體的關系等。Inmon 的范式建模法的最大優點就是從關系型數據庫的角度出發,結合了業務系統的數據模型,能夠比較方便的實現數據倉庫的建模。但其缺點也是明顯的,由於建模方法限定在關系型數據庫之上,在某些時候反而限制了整個數據倉庫模型的靈活性,性能等,特別是考慮到數據倉庫的底層數據向數據集市的數據進行匯總時,需要進行一定的變通才能滿足相應的需求。維度建模法(Dimensional Modeling)維度模型是數據倉庫領域另一位大師Ralph Kimall所倡導,他的《The Data Warehouse Toolkit-The Complete Guide to Dimensonal Modeling,中文名《數據倉庫工具箱》,是數據倉庫工程領域最流行的數倉建模經典。維度建模以分析決策的需求出發構建模型,構建的數據模型為分析需求服務,因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規模復雜查詢的響應性能。典型的代表是我們比較熟知的星形模型(Star-schema),以及在一些特殊場景下適用的雪花模型(Snow-schema)。維度建模中比較重要的概念就是 事實表(Fact table)和維度表(Dimension table)。其最簡單的描述就是,按照事實表、維度表來構建數據倉庫、數據集市。事實表:發生在現實世界中的操作型事件,其所產生的可度量數值,存儲在事實表中。從最低的粒度級別來看,事實表行對應一個度量事件。事實數據表的主要特點是包含數字數據(事實),並且這些數字信息可以匯總,以提供有關單位作為歷史的數據,每個事實數據表包含一個由多個部分組成的索引,該索引包含作為外鍵的相關性維度表的主鍵,而維度表包含事實記錄的特性。事實數據表不應該包含描述性的信息,也不應該包含除數字度量字段及使事實與維度表中對應項的相關索引字段之外的任何數據。 包含在事實數據表中的“度量值”有兩種:一種是可以累計的度量值,另一種是非累計的度量值。最有用的度量值是可累計的度量值,其累計起來的數字是非常有意義的。用戶可以通過累計度量值獲得匯總信息,例如。可以匯總具體時間段內一組商店的特定商品的銷售情況。非累計的度量值也可以用於事實數據表,但匯總結果一般是沒有意義的,例如,在一座大廈的不同位置測量溫度時,如果將大廈中所有不同位置的溫度累加是沒有意義的,但是求平均值是有意義的。一般來說,一個事實數據表都要和一個或多個維度表相關聯,用戶在利用事實數據表創建多維數據集時,可以使用一個或多個維度表。維度表:維度表可以看作是用戶來分析數據的窗口,維度表中包含事實數據表中事實記錄的特性,有些特性提供描述性信息,有些特性指定如何匯總事實數據表數據,以便為分析者提供有用的信息,維度表包含幫助匯總數據的特性的層次結構。每個維度表都包含單一的主鍵列。維度表的主鍵可以作為與之關聯的任何事實表的外鍵,當然,維度表行的描述環境應與事實表行完全對應。 維度表通常比較寬,是扁平型非規范表,包含大量的低粒度的文本屬性。

維度建模法

上圖的這個架構中是典型的星型架構。星型模式之所以廣泛被使用,在於針對各個維作了大量的預處理,如按照維進行預先的統計、分類、排序等。通過這些預處理,能夠極大的提升數據倉庫的處理能力。特別是針對 3NF 的建模方法,星型模式在性能上占據明顯的優勢。同時,維度建模法的另外一個優點是,維度建模非常直觀,緊緊圍繞着業務模型,可以直觀的反映出業務模型中的業務問題。不需要經過特別的抽象處理,即可以完成維度建模。這一點也是維度建模的優勢。但是,維度建模法的缺點也是非常明顯的,由於在構建星型模式之前需要進行大量的數據預處理,因此會導致大量的數據處理工作。而且,當業務發生變化,需要重新進行維度的定義時,往往需要重新進行維度數據的預處理。而在這些與處理過程中,往往會導致大量的數據冗余。另外一個維度建模法的缺點就是,如果只是依靠單純的維度建模,不能保證數據來源的一致性和准確性,而且在數據倉庫的底層,不是特別適用於維度建模的方法。維度建模的領域主要適用與數據集市層,它的最大的作用其實是為了解決數據倉庫建模中的性能問題。維度建模很難能夠提供一個完整地描述真實業務實體之間的復雜關系的抽象方法。實體建模法(Entity Modeling)
實體建模法並不是數據倉庫建模中常見的一個方法,它來源於哲學的一個流派。從哲學的意義上說,客觀世界應該是可以細分的,客觀世界應該可以分成由一個個實體,以及實體與實體之間的關系組成。那么我們在數據倉庫的建模過程中完全可以引入這個抽象的方法,將整個業務也可以划分成一個個的實體,而每個實體之間的關系,以及針對這些關系的說明就是我們數據建模需要做的工作。雖然實體法粗看起來好像有一些抽象,其實理解起來很容易。即我們可以將任何一個業務過程划分成 3 個部分,實體,事件和說明,如下圖所示:

實體建模法

上圖表述的是一個抽象的含義,如果我們描述一個簡單的事實:“小明開車去學校上學”。以這個業務事實為例,我們可以把“小明”,“學校”看成是一個實體,“上學”描述的是一個業務過程,我們在這里可以抽象為一個具體“事件”,而“開車去”則可以看成是事件“上學”的一個說明。從上面的舉例我們可以了解,我們使用的抽象歸納方法其實很簡單,任何業務可以看成 3 個部分:實體,主要指領域模型中特定的概念主體,指發生業務關系的對象。事件,主要指概念主體之間完成一次業務流程的過程,特指特定的業務過程。說明,主要是針對實體和事件的特殊說明。由於實體建模法,能夠很輕松的實現業務模型的划分,因此,在業務建模階段和領域概念建模階段,實體建模法有着廣泛的應用。從筆者的經驗來看,再沒有現成的行業模型的情況下,我們可以采用實體建模的方法,和客戶一起理清整個業務的模型,進行領域概念模型的划分,抽象出具體的業務概念,結合客戶的使用特點,完全可以創建出一個符合自己需要的數據倉庫模型來。但是,實體建模法也有着自己先天的缺陷,由於實體說明法只是一種抽象客觀世界的方法,因此,注定了該建模方法只能局限在業務建模和領域概念建模階段。因此,到了邏輯建模階段和物理建模階段,則是范式建模和維度建模發揮長處的階段。總結上述的這些方法都有自己的優點和局限性,在創建自己的數據倉庫模型的時候,可以參考使用上述的三種數據倉庫得建模方法,在各個不同階段采用不同的方法,從而能夠保證整個數據倉庫建模的質量。以上的資料都來自於一些百科和一些社區整理,算是數據倉庫模型的基礎理論介紹。

作者:無敵的肉包
鏈接:https://www.jianshu.com/p/8378b80e4b21
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

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



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