1. 程式人生 > >資料倉庫和資料集市的概念、區別與聯絡

資料倉庫和資料集市的概念、區別與聯絡

1.為什麼會出現資料倉庫和資料集市?

    “資料倉庫”的概念可以追溯到80 年代中期。從本質上講,最初資料倉庫是想為操作型系統到決策支援環境的資料流提供一種體系結構模型,並嘗試解決和這些資料流相關的各種問題。

    在缺乏“資料倉庫”體系結構的情況下,早期的決策支援環境如圖1 所示。企業內部存在許多冗餘的、重複建設的決策支援系統(通常是報表系統),這些系統被不同型別的使用者使用,資料的抽取層次複雜,最初在OLTP 上抽取,再在抽取後的資料集上抽取,如此等等,呈“蜘蛛網”狀,由於沒有公共的資料來源,並且資料沒有時間點,導致了產生的報表可信度下降,資料不一致問題特別顯著,更不用說轉化為有效的決策資訊。

 

資料倉庫和資料集市的概念、區別與聯絡

    為了解決上述問題,資料倉庫應運而生。資料倉庫構建了一種以集中式的資料儲存為核心的體系結構,資料儲存的模式為了適應決策分析的要求,形成了一種與原來業務系統構成的操作型環境(OLTP)相獨立的決策支援環境。資料倉庫最基本的體系結構如圖2 所示。

資料倉庫和資料集市的概念、區別與聯絡

 

     圖2 所示的以資料倉庫為基礎的決策支援環境,要求資料倉庫能夠滿足所有終端使用者的需求。然而,終端使用者的需求是不斷變化的,而且各種型別的使用者對資訊的需求也不一樣,這就要求資料倉庫儲存的資料具有充分的靈活性,能夠適應各類使用者的查詢和分析。另一方面,終端使用者對資訊的需求必須易於訪問,能夠在較高的效能上獲得結果。但是,靈活性和效能對資料倉庫而言,是一對矛盾體。為了適應靈活性的要求,資料倉庫需要儲存各種歷史資料,以規範化的模式儲存(一般是第3正規化)。於是,對於特定的使用者,TA所需要的資訊就需要在許多張很大的表上連線後得到結果,這樣就無法滿足使用者對快速訪問的效能需求。為了解決靈活性和效能之間的矛盾,資料倉庫體系結構中增加了資料集市,資料集市儲存為特定使用者需求而預先計算好的資料,從而滿足使用者對效能的需求。帶有資料集市的體系結構如圖3 所示。

資料倉庫和資料集市的概念、區別與聯絡

 

    上文提及資料倉庫除了為資料流構建體系結構模型外,還嘗試解決與資料流相關的各種問題,這些問題如圖4 所示,包括資料倉庫構建過程中需要開展的各種任務及特點。

資料倉庫和資料集市的概念、區別與聯絡

2.資料倉庫和資料集市的概念

    資料倉庫:是一個整合的面向主題的資料集合,設計的目的是支援DSS(決策支援系統)的功能,在資料倉庫裡,每個資料單元都和特定的時間相關。資料倉庫包括原子級別的資料和輕度彙總的資料。資料倉庫是面向主題的、整合的、不可更新的(穩定性)、隨時間不斷變化(不同時間)的資料集合,用以支援經營管理中的決策制定過程。
    不能將資料倉庫簡單地理解成一套軟體,資料倉庫是重建企業資料流和資訊流的過程,在這個過程中,構造企業的決策支援環境,以區別原來的業務系統所構建的操作型環境。資料倉庫的價值並不是你在倉庫中所儲存的資料量的多少,而關鍵在於從倉庫中能夠獲得的資訊和分析結果的質量。
      資料集市:是一個小型的部門或工作組級別的資料倉庫。有兩種型別的資料集市——獨立型和從屬型。獨立型資料集市直接從操作型環境獲取資料。從屬型資料集市從企業級資料倉庫獲取資料。從長遠的角度看,從屬型資料集市在體系結構上比獨立型資料集市更穩定。
      獨立型資料集市的存在會給人造成一種錯覺,似乎可以先獨立地構建資料集市,當資料集市達到一定的規模可以直接轉換為資料倉庫,然而這是不正確的,多個獨立的資料集市的累積並不能形成一個企業級的資料倉庫,這是由資料倉庫和資料集市本身的特點決定的。如果脫離集中式的資料倉庫,獨立的建立多個數據集市,企業只會又增加了一些資訊孤島,仍然不能以整個企業的檢視分析資料,資料集市為各個部門或工作組所用,各個集市之間又會存在不一致性。當然,獨立型資料集市是一種既成事實,為滿足特定使用者的需求而建立的一種分析型環境,但是,從長遠的觀點看,是一種權宜之計,必然會被企業級的資料倉庫所取代。

3.資料倉庫和資料集市之間的區別

      資料倉庫和資料集市之間的區別可以直觀地用圖5表示。

資料倉庫和資料集市的概念、區別與聯絡

    從圖中可以看出,資料倉庫中資料結構採用的規範化模式(關係資料庫設計理論),資料集市的資料結構採用的星型模式(多維資料庫設計理論)。資料倉庫中資料的粒度比資料集市的細。上圖只反映了資料結構和資料內容的兩個特徵,對於其他區別如下表所示,並且簡單的以銀行為例進行說明。

資料倉庫和資料集市的概念、區別與聯絡

    假設為某銀行構建一個分行級別的資料倉庫,再為該分行國際業務部構建資料集市。資料倉庫的資料來源於銀行的業務系統,包括:儲蓄、卡、個貸、外匯寶、中間業務等等,分析的主題包括客戶、渠道、產品等。資料倉庫的資料粒度根據分析的要求而定,一般包括具體的歷史記錄(存款、取款、外匯交易、POS 消費、中間業務繳費記錄),然後,將這些記錄彙總到天/周/月/季度/年等各個層次,具體資料的粒度由分析的需求而定。另外,資料倉庫還儲存一些業務邏輯——為分析而計算的一些指標。比如,客戶的價值或客戶的忠誠度。這些指標的計算不能通過單一的業務系統,需要在所有業務上綜合考慮,這也是資料倉庫系統的優點之一。假設整個分行有20 萬個客戶,那麼資料倉庫將包含20 萬個客戶的所有業務的歷史資料、彙總資料、以及資料倉庫指標資料,資料量會達到幾十甚至數百G(這只是非常小規模的資料倉庫)。資料倉庫為了滿足全行所有部門使用者的查詢和分析,只能採用正規化化設計,這樣不管使用者有什麼需求,只要有資料存在,就能滿足。再假設國際業務部門的客戶有2 萬人(使用外匯寶),如果不構建資料集市,他們會直接在資料倉庫上查詢相關的資訊,比如外匯寶客戶去年一年外匯交易額在各種交易方式上(櫃檯、網上、電話銀行等)的分佈。查詢的效率和效能是非常低的,如果各個部門的所有使用者都直接在資料倉庫上查詢相關的資訊,資料倉庫的效能會下降,而且無法滿足使用者對效能的需求,誰都不願意為一個簡單的查詢等待數分鐘甚至數小時。因此,構建部門級的資料集市是非常必要的,主要基於效能上的考慮。國際業務部門的資料集市包括2 萬個客戶的外匯交易歷史,以及彙總,採用星型模式(或雪花,或兩者混合),以方便OLAP 工具的查詢和分析。從這個簡單的例子,可以看出,資料集市的資料來源於資料倉庫,主要是經過重新組織的彙總資料。因此,多個數據集市不能構成一個企業級的資料倉庫,借用Inmon 的比喻:我們不可能將大海里的小魚堆在一起就構成一頭大鯨魚。這也說明了資料倉庫和資料集市有本質的不同。
      跟隨資料倉庫和資料集市的概念,資料倉庫的設計方法也分為三種:自頂而下,自下而上,以及兩者的混合。所謂自頂而下是先建立一個企業級的資料倉庫,再建立各個資料集市,自下而上與此相反,混合的方法是要求在建立資料集市時,同時考慮企業級資料倉庫的結構、內容。