1. 程式人生 > >資料倉庫和資料集市的區別【轉載】

資料倉庫和資料集市的區別【轉載】

看了很多資料倉庫方面的資料,都涉及到了“資料集市”這一說法,剛開始對資料倉庫和資料集市的區別也理解得比較膚淺,現在做個深入的歸納和總結,主要從如下幾個方面進行闡述:
(1) 基本概念
(2) 為什麼提出資料集市
(3) 資料倉庫設計方法論
(4) 資料集市和資料倉庫的區別
(5) 倉庫建模與集市建模
(6) 案例分析:電信CRM資料倉庫

Bill Inmon說過一句話叫“IT經理們面對最重要的問題就是到底先建立資料倉庫還是先建立資料集市”,足以說明搞清楚這兩者之間的關係是十分重要而迫切的!通常在考慮建立資料倉庫之前,會涉及到如下一些問題:
(1) 採取自上而下還是自下而上的設計方法
(2) 企業範圍還是部門範圍
(3) 先建立資料倉庫還是資料集市
(4) 建立領航系統還是直接實施
(5) 資料集市是否相互獨立

一、基本概念

資料倉庫一詞尚沒有一個統一的定義,著名的資料倉庫專家W. H. Inmon 在其著作《Buildingthe Data Warehouse》一書中給予如下描述:資料倉庫(Data Warehouse) 是一個面向主題的(SubjectOri2ented) 、整合的( Integrate ) 、相對穩定的(Non -Volatile ) 、反映歷史變化( TimeVariant) 的資料集合用於支援管理決策。對於資料倉庫的概念我們可以從兩個層次予以理解,首先,資料倉庫用於支援決策,面向分析型資料處理,它不同於企業現有的操作型資料庫;其次,資料倉庫是對多個異構的資料來源有效整合,整合後按照主題進行了重組,幷包含歷史資料,而且存放在資料倉庫中的資料一般不再修改。

為最大限度地實現靈活性,整合的資料倉庫的資料應該儲存在標準RDBMS 中,並經過規範的資料庫設計,以及為了提高效能而增加一些小結性資訊和不規範設計。這種型別的資料倉庫設計被稱為原子資料倉庫。原子資料倉庫的子集,又稱為資料集市。原子倉庫存在的主要目的是作為資料集市的工作基礎,同時也作為參照性資料倉庫。原子倉庫的大小、集中存放和資料庫設計可能無法滿足特殊型別使用者的各種需求。其子集,即各個資料集市被拷貝到其它計算機上,可作為它們自己的資料倉庫。資料集市可以和產生它們的原子資料倉庫一樣大,甚至更大。它們可以位於原子資料倉庫的附近,或分佈到更靠近使用者的位置,放置在何處取決於使用和通訊成本。資料集市是用來滿足特殊使用者的應用需求的資料倉庫,它們的規模可能達到數百GB。使其成為資料集市的關鍵是它的使用目標、範圍,而非規模大小。
資料集市可以理解為是一個小型的部門或者工作組級別的資料倉庫。有兩種型別的資料集市(如下圖):
 


獨立型(直接從操作型環境中獲取資料):這些資料集市是由特定的工作組、部門或業務線進行控制的,完全是為滿足其需求而構建的。實際上,它們甚至與其他工作組、部門或業務線中的資料集市沒有任何連通性
從屬型(從企業級資料倉庫中獲取資料):這樣的資料集市往往以分散式的方式實現。雖然不同的資料集市是在特定的工作組、部門或生產線中實現的,但它們可以是整合、互連的,以提供更加全域性的業務範圍的資料檢視。實際上,在最高的整合層次上,它們可以成為業務範圍的資料倉庫。這意味著一個部門中的終端使用者可以訪問和使用另一部門中資料集市中的資料


二、為什麼提出資料集市

雖然 OLTP 和遺留系統擁有寶貴的資訊,但是可能難以從這些系統中提取有意義的資訊並且速度也較慢。而且這些系統雖然一般可支援預先定義操作的報表,但卻經常無法支援一個組織對於歷史的、聯合的、智慧的或易於訪問的資訊的需求。因為資料分佈在許多跨系統和平臺的表中,而且通常是“髒的”,包含了不一致的和無效的值,使得難於分析。

資料集市將合併不同系統的資料來源來滿足業務資訊需求。若能有效地得以實現,資料集市將可以快速且方便地訪問簡單資訊以及系統的和歷史的檢視。一個設計良好的資料集市有如下特點(有些特點資料倉庫也具有,有些特點是相對於資料倉庫來講的): 
(1) 特定使用者群體所需的資訊,通常是一個部門或者一個特定組織的使用者,且無需受制於源系統的大量需求和操作性危機(想對於資料倉庫)。 
(2) 支援訪問非易變(nonvolatile)的業務資訊。(非易變的資訊是以預定的時間間隔進行更新的,並且不受 OLTP 系統進行中的更新的影響。) 
(3) 調和來自於組織裡多個執行系統的資訊,比如賬目、銷售、庫存和客戶管理以及組織外部的行業資料。 
(4) 通過預設有效值、使各系統的值保持一致以及新增描述以使隱含程式碼有意義,從而提供淨化的(cleansed)資料。 
(5) 為即席分析和預定義報表提供合理的查詢響應時間(由於資料集市是部門級的,相對於龐大的資料倉庫來講,其查詢和分析的響應時間會大大縮短)。


三、資料倉庫設計方法論

在資料倉庫建立之前,會考慮其實現方法,通常有自頂向下、自底向上和兩者綜合進行的這樣三種實現方案,下面分別對其做簡要闡述:

(1)自頂向下的實現
自頂向下的方法就是在單個專案階段中實現資料倉庫。自頂向下的實現需要在專案開始時完成更多計劃和設計工作。這就需要涉及參與資料倉庫實現的每個工作組、部門或業務線中的人員。要使用的資料來源、安全性、資料結構、資料質量、資料標準和整個資料模型的有關決策一般需要在真正的實現開始之前就完成。

(2)自底向上的實現
自底向上的實現包含資料倉庫的計劃和設計,無需等待安置好更大業務範圍的資料倉庫設計。這並不意味著不會開發更大業務範圍的資料倉庫設計;隨著初始資料倉庫實現的擴充套件,將逐漸增加對它的構建。現在,該方法得到了比自頂向下方法更廣泛的接受,因為資料倉庫的直接結果可以實現,並可以用作擴充套件更大業務範圍實現的證明。

(3)一種折中方案
每種實現方法都有利弊。在許多情況下,最好的方法可能是某兩種的組合。該方法的關鍵之一就是確定業務範圍的架構需要用於支援整合的計劃和設計的程度,因為資料倉庫是用自底向上的方法進行構建。在使用自底向上或階段性資料倉庫專案模型來構建業務範圍架構中的一系列資料集市時,您可以一個接一個地整合不同業務主題領域中的資料集市,從而形成設計良好的業務資料倉庫。這樣的方法可以極好地適用於業務。在這種方法中,可以把資料集市理解為整個資料倉庫系統的邏輯子集,換句話說資料倉庫就是一致化了的資料集市的集合。這種方案的實施步驟通常分如下幾步:
(6) 從整個企業的角度定義計劃和需求
(7) 構建完整的倉庫體系結構
(8) 使資料內容一致而且標準化
(9) 將資料倉庫作為一種超級資料集市來實施

關於Inmon 和 Kimball的大辯論:
Ralph Kimball 和 Bill Inmon 一直是商業智慧領域中的革新者,開發並測試了新的技術和體系結構。
Bill Inmon 將資料倉庫定義為“一個面向主題的、整合的、隨時間變化的、非易變的用於支援管理的決策過程的資料集合”;他通過“面向主題”表示應該圍繞主題來組織資料倉庫中的資料,例如客戶、銷售、產品等等。每個主題區域僅僅包含該主題相關的資訊。資料倉庫應該一次增加一個主題,並且當需要容易地訪問多個主題時,應該建立以資料倉庫為來源的資料集市。換言之,某個特定資料集市中的所有資料都應該來自於面向主題的資料儲存。 Inmon 的方法包含了更多上述工作而減少了對於資訊的初始訪問。但他認為這個集中式的體系結構持續下去將提供更強的一致性和靈活性,並且從長遠來看將真正節省資源和工作。下圖是他的設計方法圖解:
 

Ralph Kimball 說“資料倉庫僅僅是構成它的資料集市的聯合”,他認為“可以通過一系列維數相同的資料集市遞增地構建資料倉庫”。每個資料集市將聯合多個數據源來滿足特定的業務需求。通過使用“一致的”維,能夠共同看到不同資料集市中的資訊,這表示它們擁有公共定義的元素。設計方法如下圖:
 

   Kimball 的方法將提供整合的資料來回答組織迫切的業務問題並且要快於 Inmon 的方法。Inmon 的方法是隻有在構建幾個單主題區域之後,集中式的資料倉庫才建立資料集市。而 Kimball 認為該方法缺乏靈活性並且在現在的商業環境中所花時間太長。 
實際上,方法的選擇取決於專案的主要商業驅動。如果該組織正忍受糟糕的資料管理和不一致的資料,或者希望為今後打下良好的基礎,那麼 Inmon 的方法就更好一些。 如果該組織迫切需要給使用者提供資訊,那麼 Kimball 的方法將滿足該需求。而一旦滿足了迫切的資訊需求後,就應該考慮包含獨立資料倉庫的資料體系結構的轉換計劃。資料倉庫將使資料集市與遺留系統和 OLTP 系統隔離,並且支援更快地建立將來的資料集市。由於資料倉庫在整個發展中一直承擔了重任,所以它將支援極力關注資料集市。實際上基於商業驅動的需要,採用上面三種設計方案中的最後一種方法:自頂向下和自底向上綜合的方案會很好的適應資料倉庫建立過程中的不同需求。


四、資料倉庫與資料集市的區別

資料倉庫是企業級的,能為整個企業各個部門的執行提供決策支援手段;而資料集市則是一種微型的資料倉庫,它通常有更少的資料,更少的主題區域,以及更少的歷史資料,因此是部門級的,一般只能為某個區域性範圍內的管理人員服務,因此也稱之為部門級資料倉庫。資料倉庫和資料集市之間的區別如下圖:

資料倉庫和資料集市的區別可從如下三個方面進行理解:
(1) 資料倉庫向各個資料集市提供資料
(2) 幾個部門的資料集市組成一個數據倉庫
 

(3) 下面從其資料內容特徵進行分析,資料倉庫中資料結構採用規範化模式,資料集市中的資料結構採用星型模式,通常倉庫中資料粒度比集市的粒度要細,下圖反映了資料結構和資料內容特徵的區別
 

五、資料倉庫建模與資料集市建模

資料只是所有業務活動、資源以及企業結果的記錄。資料模型是對那些資料的組織良好的抽象,因此資料模型成為理解和管理企業業務的最佳方法是極其自然的。資料模型起到了指導或計劃資料倉庫的實現的作用。在真正的實現開始之前,聯合每個業務領域的資料模型可以幫助確保其結果是有效的資料倉庫,並且可以幫助減少實現的成本。

(1)資料倉庫的建模
資料倉庫資料的建模是將需求轉換成圖畫以及支援表示那些需求的元資料的過程。出於易讀性目的,本文將關於需求和建模的討論相分離,但實際上這些步驟通常是重疊的。一旦在文件中記錄一些初始需求,初始模型就開始成型。隨著需求變得更加完整,模型也會如此。
最重要的是向終端使用者提供良好整合並易於解釋的資料倉庫的邏輯模型。這些邏輯模型是資料倉庫元資料的核心之一。為終端使用者提供的簡單性以及歷史資料的整合和聯合是建模方法應該幫助提供的關鍵原則。

(2)資料集市的資料建模
因為倉庫終端使用者直接與資料集市進行互動,所以資料集市的建模是捕獲終端使用者業務需求的最有效工具之一。資料集市的建模過程取決於許多因素。下面描述了三個最重要的:

資料集市的建模是終端使用者驅動的。終端使用者必須參與資料集市的建模過程,因為他們顯然是要使用該資料集市的人。因為您應期望終端使用者完全不熟悉複雜的資料模型,所以應該將建模技術和建模過程作為整體進行組織,以便使複雜性對終端使用者透明。

資料集市的建模是由業務需求驅動的。資料集市模型對於捕獲業務需求十分有用,因為它們通常由終端使用者直接使用,且易於理解。

資料集市的建模極大地受到了資料分析技術的影響。資料分析技術可以影響所選擇的資料模型的型別及其內容。目前,有幾種常用的資料分析技術:查詢和報表製作、多維分析以及資料探勘。

如果僅僅意圖提供查詢和報表製作功能,那麼帶有正規(normalized)或非正規(denormalized)資料結構的 ER 模型就是最合適的。維度資料模型也可能是較好的選擇,因為它是使用者友好的,並具有更好的效能。如果其目標是執行多維資料分析,那麼維度資料模型就是這裡的惟一選擇。然而,資料探勘通常在可用的最低細節級(level of detail)工作得最好。因此,如果資料倉庫是用於資料探勘的,就應該在模型中包含較低細節級(level of detail)的資料。