209
技術社區[雲棲]
數據倉庫和數據集市簡介
初次接觸數據倉庫的朋友,肯定也聽過另一個類似的概念:數據集市。很多朋友都心有疑惑,到底這兩個有什麼關係呢,今天這篇文章來談一談。
首先來看一張網上的數據倉庫架構圖,這是一個從屬型數據集市,位於數據倉庫的上層。

一、數據倉庫和數據集市的概念
數據倉庫(Data Warehouse) 是一個麵向主題的(Subject Oriented) 、集成的( Integrate ) 、相對穩定的(Non -Volatile ) 、反映曆史變化( TimeVariant) 的數據集合用於支持管理決策。
首先,數據倉庫用於支持決策,麵向分析型數據處理,它不同於企業現有的操作型數據庫;
其次,數據倉庫是對多個異構的數據源有效集成,集成後按照主題進行了重組,並包含曆史數據,而且存放在數據倉庫中的數據一般不再修改。
數據集市是用來滿足特殊用戶的應用需求的數據倉庫,它們的規模可能達到數百GB。使其成為數據集市的關鍵是它的使用目標、範圍,而非規模大小。數據集市可以理解為是一個小型的部門或者工作組級別的數據倉庫。有兩種類型的數據集市:
獨立型(直接從操作型環境中獲取數據):這些數據集市是由特定的工作組、部門或業務線進行控製的,完全是為滿足其需求而構建的。實際上,它們甚至與其他工作組、部門或業務線中的數據集市沒有任何連通性
從屬型(從企業級數據倉庫中獲取數據,如開始時的架構圖):這樣的數據集市往往以分布式的方式實現。雖然不同的數據集市是在特定的工作組、部門或生產線中實現的,但它們可以是集成、互連的,以提供更加全局的業務範圍的數據視圖。實際上,在最高的集成層次上,它們可以成為業務範圍的數據倉庫。這意味著一個部門中的終端用戶可以訪問和使用另一部門中數據集市中的數據。
二、數據集市是怎麼產生的
一個企業往往有很多現有的係統,跟隨有許多現有的OLTP數據庫,雖然這些數據庫擁有很多信息,但是分析人員很難從這些係統中提取有意義的信息並且速度也較慢。而且這些係統雖然一般可支持預先定義操作的報表,但卻經常無法支持一個組織對於曆史的、聯合的或易於訪問的信息的需求。因為數據分布在許多跨係統和平台的表中,而且通常是“髒的”,包含了不一致的和無效的值,使得難於分析。針對這種數據散落難以集中分析的狀況,數據倉庫應運而生。真對大型企業,數據經過ETL以後,匯總到一起。但是部門需求龐雜,導致如果從數據倉庫中直接提煉分析數據,性能也不太可觀,這時候,數據倉庫應運而生。真對不同部門的不同分類需求,數據倉庫延伸出各種數據集市供給某一部分特定部門或者人群。這樣就大大提高了不同分析需求的執行效率。
一個設計良好的數據集市有如下特點(有些特點數據倉庫也具有,有些特點是相對於數據倉庫來講的):
(1) 特定用戶群體所需的信息,通常是一個部門或者一個特定組織的用戶,且無需受製於源係統的大量需求和操作性危機(想對於數據倉庫)。
(2) 支持訪問非易變的業務信息。(非易變的信息是以預定的時間間隔進行更新的,並且不受 OLTP 係統進行中的更新的影響。)
(3) 調和來自於組織裏多個運行係統的信息,比如賬目、銷售、庫存和客戶管理以及組織外部的行業數據。
(4) 通過默認有效值、使各係統的值保持一致以及添加描述以使隱含代碼有意義,從而提供淨化的數據。
(5) 為即席分析和預定義報表提供合理的查詢響應時間(由於數據集市是部門級的,相對於龐大的數據倉庫來講,其查詢和分析的響應時間會大大縮短)。
三、數據倉庫設計方法論
在數據倉庫建立之前,會考慮其實現方法,通常有自頂向下、自底向上和兩者綜合進行的這樣三種實現方案,下麵分別對其做簡要闡述:
(1)自頂向下
自頂向下的方法就是在單個項目階段中實現數據倉庫。自頂向下的實現需要在項目開始時完成更多計劃和設計工作。這就需要涉及參與數據倉庫實現的每個工作組、部門或業務線中的人員。要使用的數據源、安全性、數據結構、數據質量、數據標準和整個數據模型的有關決策一般需要在真正的實現開始之前就完成。
(2)自底向上
自底向上的實現包含數據倉庫的計劃和設計,無需等待安置好更大業務範圍的數據倉庫設計。這並不意味著不會開發更大業務範圍的數據倉庫設計;隨著初始數據倉庫實現的擴展,將逐漸增加對它的構建。現在,該方法得到了比自頂向下方法更廣泛的接受,因為數據倉庫的直接結果可以實現,並可以用作擴展更大業務範圍實現的證明。
(3)折中方案
每種實現方法都有利弊。在許多情況下,最好的方法可能是某兩種的組合。該方法的關鍵之一就是確定業務範圍的架構需要用於支持集成的計劃和設計的程度,因為數據倉庫是用自底向上的方法進行構建。在使用自底向上或階段性數據倉庫項目模型來構建業務範圍架構中的一係列數據集市時,您可以一個接一個地集成不同業務主題領域中的數據集市,從而形成設計良好的業務數據倉庫。這樣的方法可以極好地適用於業務。在這種方法中,可以把數據集市理解為整個數據倉庫係統的邏輯子集,換句話說數據倉庫就是一致化了的數據集市的集合。
四、數據倉庫和數據集市的區別
數據倉庫是企業級的,能為整個企業各個部門的運行提供決策支持手段;而數據集市則是一種微型的數據倉庫,它通常有更少的數據,更少的主題區域,以及更少的曆史數據,因此是部門級的,一般隻能為某個局部範圍內的管理人員服務,因此也稱之為部門級數據倉庫。下圖展示了數據倉庫和數據集市的結構,加以區別:

數據倉庫和數據集市的區別可從如下三個方麵進行理解:
(1) 數據倉庫向各個數據集市提供數據
(2) 幾個部門的數據集市組成一個數據倉庫
(3) 下麵從其數據內容特征進行分析,數據倉庫中數據結構采用規範化模式,數據集市中的數據結構采用星型模式,通常倉庫中數據粒度比集市的粒度要細
五、數據倉庫和數據集市建模
數據隻是所有業務活動、資源以及企業結果的記錄。數據模型是對那些數據的組織良好的抽象,因此數據模型成為理解和管理企業業務的最佳方法是極其自然的。數據模型起到了指導或計劃數據倉庫的實現的作用。在真正的實現開始之前,聯合每個業務領域的數據模型可以幫助確保其結果是有效的數據倉庫,並且可以幫助減少實現的成本。
(1)數據倉庫的建模
數據倉庫數據的建模是將需求轉換成圖畫以及支持表示那些需求的元數據的過程。出於易讀性目的,本文將關於需求和建模的討論相分離,但實際上這些步驟通常是重疊的。一旦在文檔中記錄一些初始需求,初始模型就開始成型。隨著需求變得更加完整,模型也會如此。
最重要的是向終端用戶提供良好集成並易於解釋的數據倉庫的邏輯模型。這些邏輯模型是數據倉庫元數據的核心之一。為終端用戶提供的簡單性以及曆史數據的集成和聯合是建模方法應該幫助提供的關鍵原則。
(2)數據集市的建模
因為數據倉庫終端用戶直接與數據集市進行交互,所以數據集市的建模是捕獲終端用戶業務需求的最有效工具之一。數據集市的建模過程取決於許多因素。下麵描述了三個最重要的:
數據集市的建模是終端用戶驅動的。終端用戶必須參與數據集市的建模過程,因為他們顯然是要使用該數據集市的人。因為您應期望終端用戶完全不熟悉複雜的數據模型,所以應該將建模技術和建模過程作為整體進行組織,以便使複雜性對終端用戶透明。
數據集市的建模是由業務需求驅動的。數據集市模型對於捕獲業務需求十分有用,因為它們通常由終端用戶直接使用,且易於理解。
數據集市的建模極大地受到了數據分析技術的影響。數據分析技術可以影響所選擇的數據模型的類型及其內容。目前,有幾種常用的數據分析技術:查詢和報表製作、多維分析以及數據挖掘。
最後更新:2017-06-07 21:32:18