商場數據倉庫ETL系統架構設計

基於CWM的商場數據倉庫ETL系統架構的編碼實現擬採用Java語言。之所以選擇Java語言,不僅因爲它是一種簡單的、面向對象的、分佈式的語言,並且具有平臺無關性和安全性等優點,下面一起就和小編來了解了解!

商場數據倉庫ETL系統架構設計

  一、ETL 概述

ETL是數據抽取(Extract)、轉換(Transform)、加載(Load)的簡寫,它是指:將各種異構數據源中的數據抽取出來,並將不同數據源的數據進行轉換和整合,得出一致性的數據,然後加載到數據倉庫中。ETL工具,是數據倉庫系統的重要組成部分;是影響數據倉庫系統成敗的關鍵。

獲取ETL工具有兩個途徑:利用現有商品化ETL工具,雖然能縮短系統的開發週期,但存在投資成本大,軟件的針對性、通用性、兼容性差的問題。自行設計開發一個標準通用的ETL工具,提高ETL的實用價值,降低項目實施的成本和風險,具有重要的意義。

由於數據倉庫和數據源系統在數據格式、數據模型等方面存在很大差異,客觀上形成數據倉庫ETL實現過程很大的難度。在ETL的工作過程中,每步都和數據倉庫元數據密切相關。

按照傳統的定義,元數據(Metadata)是關於數據的數據。元數據支撐了數據倉庫開發應用的全過程,成爲數據從數據源到數據倉庫的橋樑。

數據抽取階段,沒有相應的映射規則,就無法知道需要抽取什麼樣的數據;在將源數據存儲格式轉換爲目標數據存儲格式時,需要知道源存儲格式和目標存儲格式的信息,以及相應的存儲格式之間的轉換規則;在數據加載階段,需要知道目標數據倉庫的數據結構和相關信息。所有這些信息,都需要元數據提供。

由此可見,ETL過程自始至終都需要元數據的支持和控制。正因爲如此,要解決ETL開發中的問題,應當從相關的元數據着手。

  二、關於CWM 及其提供的工作機制

CWM(Common Warehouse Metamodel 公共倉庫元模型)是 國際對象管理集團OMG推出的數據倉庫元數據管理規範。CWM的主要目的是在分佈異構環境下,使數據倉庫工具、工作平臺和元數據存儲庫之間易於進行數據倉庫元數據的交換。

CWM基於以下三個工業標準制定:

(Unified Modeling Language統一建模語言)

作爲目前最爲風行的建模語言,UML用於描述一般數據倉庫架構的元模型。

(Meta Object Facility 元對象工具)

MOF是OMG元模型和元數據的存儲標準,用以定義存儲庫的結構、對外接口和交換格式的映射規則。

(XML Metadata Interchange,XML元數據交換)

XMI是基於XML的元數據交換。定義如何用XML表示基於MOF的元數據,使元數據以XML文件流的方式進行交換。

基於上列三個標準,CWM爲數據倉庫工具之間共享元數據,制定了一整套關於模式、語法和語義的規範。主要包括:

(1)CWM元模型(Metamodel):描述數據倉庫系統共享的元模型。它由一系列子元模型構成。

(2)CWM XML:CWM元模型的XML表示。

(3)CWM DTD:DW/BI共享元數據的交換格式。

(4)CWM IDL:DW/BI共享元數據的應用程序訪問接口。

基於CWM的數據倉庫元數據轉換和管理模型可用圖1表示。從圖1不難理解,元數據庫也是基於CWM標準,通過CWM元模型映射構建。CWM 以UML 的元模型爲基礎,針對數據倉庫領域的應用,使用特定的元類、元關係,將來自各異構數據源和數據倉庫各個組件中的元數據,通過CWM XML、CWM DTD、CWM IDL 三個規範,轉化爲XML 文檔。爲數據倉庫元數據管理提供了滿足元數據交換所需的語法和語義規範的、方便元數據交換和元數據存儲的文件。

  三、基於CWM的數據倉庫ETL系統架構

1.基於CWM的ETL系統架構

在研究ETL和CWM的基礎上,設計出基於CWM的數據倉庫ETL過程的系統架構。

2.系統架構的結構分析

(1)ETL子系統結構

ETL子系統結構由五個模塊組成。即:系統調度模塊、元數據管理模塊、數據抽取模塊、數據轉換模塊和數據裝載模塊。其中,數據抽取模塊負責將超市業務系統的原始數據進行抽取並保存到臨時數據庫中;數據轉換模塊負責對抽取出來的數據進行清洗、轉換和計算彙總;數據裝載模塊負責將經過清洗、轉換的、符合目標數據模型的數據裝載到目標數據庫中。以上三個模塊的活動被系統調度模塊統一調度,結合元數據管理模塊對整個ETL過程進行統一控制,用以實現ETL各步驟的定時觸發、正常執行和異常控制等過程。

(2)CWM對系統元數據的規範

整個架構以CWM元模型庫爲基礎,通過CWM工作機制,把各個層次的元數據規範化後,存儲在元數據庫中,再由元數據管理模塊支撐並控制整個架構的運行。

(3)建立集中式元數據庫

爲了便於對數據倉庫的元數據進行有效管理,按照通用的元數據管理標準建立一個集中式的元數據庫。在所建元數據庫中,通過建立“信息模型”的方法對元數據進行分類,並建立分類存儲的、通用的信息目錄。把技術元數據和商業元數據存儲在不同的信息目錄中。便於適應不同的服務目標、不同的元數據結構的存儲和管理。元數據信息目錄面向數據倉庫的應用程序。應用程序可以通過訪問該目錄,使用、存儲、管理元數據;用戶也可以通過該目錄,對元數據進行瀏覽、查詢和使用。整個架構,都集中在元數據的統一控制之下。

  四、CWM對ETL提供的技術支持分析

元模型結構

由於系統架構建立在CWM元模型基礎之上,CWM通過對元數據的統一規範和管理,實現了對整個架構的支持。

爲了便於分析CWM對ETL子系統中各個模塊的支持,圖3給出了CWM元模型結構示意圖。在CWM的總體結構中,可分爲5個層次,由若干互不相同但又緊密相關的子元模型包構成。圖中灰色部分是CWM對ETL子系統有着直接聯繫和支撐CWM元模型包。

2.對數據抽取模塊的支持

在CWM的資源層中,五個元模型分別對五種不同的數據源進行了建模。五種數據源格式分別是:面向對象的數據格式、關係型數據格式、記錄型數據格式、多維數據格式和XML數據格式。這五個元模型所描述的數據格式相當齊全,利用它們,可以把商場常用的、歷史遺留的數據源都描述出來。從而得到各種不同格式的數據源的元數據,爲ETL對數據源的抽取過程提供了支持。

3.對數據轉換模塊的支持

ETL的核心還是在於“T”這個過程,也就是轉換過程。而抽取和裝載一般可以作爲轉換的輸入和輸出,因此,我們重點研究了CWM對數據轉換過程的支持。

在CWM分析層中,轉換包對ETL過程進行了詳細的描述。轉換包的主要作用是:將一次轉換活動的數據源和目標準數據關聯起來,同時支持“黑盒”和“白盒”轉換,可將一組轉換組成一個邏輯單元。一次轉換可以將一組源對象轉換成一組目標對象。數據對象集合可以是任何模型元素,但通常是表、字段或者內存對象。

CWM管理層中的數據倉庫操作包,記錄了數據倉庫的三個重要事件。其中的轉換執行事件定義了記錄轉換活動結果的類。在轉換完成之後,轉換活動的結果可被活動執行類和步驟執行類記錄。這個記錄行爲是對發生在數據倉庫操作包中的一個內部事件、或者其他類似方式的迴應,爲每個轉換執行記錄開始、結束時間,各種進展和結果的指標。便於需要時查詢。

4.對數據調度模塊的支持

系統調度模塊負責對ETL過程進行統一調度和異常控制,保證ETL正常運行。在CWM的管理層中,數據倉庫處理包描述了數據倉庫處理(實際上就是轉換過程)的調度方面的信息。在數據倉庫處理包中,定義了能夠觸發轉換活動執行的一系列事件。這些事件控制了數據轉換過程的調度。

5.對數據裝載模塊的支持

數據裝載模塊負責將經過清洗、轉換的、符合目標數據模型的數據裝載到目標數據庫中。在CWM的支持下,完成了對源數據的抽取和轉換,在系統元數據的控制下,把正確的數據加載到數據倉庫中,就是一件極其簡單的事了。

總之,CWM爲ETL 提供的技術支持,爲ETL各個功能模塊的實現奠定了基礎。爲系統架構的實施提供了條件。同時,也保證了ETL子系統的通用性和可擴展性。