商場資料倉庫ETL系統架構設計

才智咖 人氣:1.04W

基於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 文件。為資料倉庫元資料管理提供了滿足元資料交換所需的語法和語義規範的、方便元資料交換和元資料儲存的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子系統的通用性和可擴充套件性。