- 相關(guān)推薦
商場(chǎng)數(shù)據(jù)倉庫ETL系統(tǒng)架構(gòu)設(shè)計(jì)
基于CWM的商場(chǎng)數(shù)據(jù)倉庫ETL系統(tǒng)架構(gòu)的編碼實(shí)現(xiàn)擬采用Java語言。之所以選擇Java語言,不僅因?yàn)樗且环N簡(jiǎn)單的、面向?qū)ο蟮摹⒎植际降恼Z言,并且具有平臺(tái)無關(guān)性和安全性等優(yōu)點(diǎn),下面一起就和小編來了解了解!
一、ETL 概述
ETL是數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換(Transform)、加載(Load)的簡(jiǎn)寫,它是指:將各種異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽取出來,并將不同數(shù)據(jù)源的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和整合,得出一致性的數(shù)據(jù),然后加載到數(shù)據(jù)倉庫中。ETL工具,是數(shù)據(jù)倉庫系統(tǒng)的重要組成部分;是影響數(shù)據(jù)倉庫系統(tǒng)成敗的關(guān)鍵。
獲取ETL工具有兩個(gè)途徑:利用現(xiàn)有商品化ETL工具,雖然能縮短系統(tǒng)的開發(fā)周期,但存在投資成本大,軟件的針對(duì)性、通用性、兼容性差的問題。自行設(shè)計(jì)開發(fā)一個(gè)標(biāo)準(zhǔn)通用的ETL工具,提高ETL的實(shí)用價(jià)值,降低項(xiàng)目實(shí)施的成本和風(fēng)險(xiǎn),具有重要的意義。
由于數(shù)據(jù)倉庫和數(shù)據(jù)源系統(tǒng)在數(shù)據(jù)格式、數(shù)據(jù)模型等方面存在很大差異,客觀上形成數(shù)據(jù)倉庫ETL實(shí)現(xiàn)過程很大的難度。在ETL的工作過程中,每步都和數(shù)據(jù)倉庫元數(shù)據(jù)密切相關(guān)。
按照傳統(tǒng)的定義,元數(shù)據(jù)(Metadata)是關(guān)于數(shù)據(jù)的數(shù)據(jù)。元數(shù)據(jù)支撐了數(shù)據(jù)倉庫開發(fā)應(yīng)用的全過程,成為數(shù)據(jù)從數(shù)據(jù)源到數(shù)據(jù)倉庫的橋梁。
數(shù)據(jù)抽取階段,沒有相應(yīng)的映射規(guī)則,就無法知道需要抽取什么樣的數(shù)據(jù);在將源數(shù)據(jù)存儲(chǔ)格式轉(zhuǎn)換為目標(biāo)數(shù)據(jù)存儲(chǔ)格式時(shí),需要知道源存儲(chǔ)格式和目標(biāo)存儲(chǔ)格式的信息,以及相應(yīng)的存儲(chǔ)格式之間的轉(zhuǎn)換規(guī)則;在數(shù)據(jù)加載階段,需要知道目標(biāo)數(shù)據(jù)倉庫的數(shù)據(jù)結(jié)構(gòu)和相關(guān)信息。所有這些信息,都需要元數(shù)據(jù)提供。
由此可見,ETL過程自始至終都需要元數(shù)據(jù)的支持和控制。正因?yàn)槿绱耍鉀QETL開發(fā)中的問題,應(yīng)當(dāng)從相關(guān)的元數(shù)據(jù)著手。
二、關(guān)于CWM 及其提供的工作機(jī)制
CWM(Common Warehouse Metamodel 公共倉庫元模型)是 國(guó)際對(duì)象管理集團(tuán)OMG推出的數(shù)據(jù)倉庫元數(shù)據(jù)管理規(guī)范。CWM的主要目的是在分布異構(gòu)環(huán)境下,使數(shù)據(jù)倉庫工具、工作平臺(tái)和元數(shù)據(jù)存儲(chǔ)庫之間易于進(jìn)行數(shù)據(jù)倉庫元數(shù)據(jù)的交換。
CWM基于以下三個(gè)工業(yè)標(biāo)準(zhǔn)制定:
1.UML(Unified Modeling Language統(tǒng)一建模語言)
作為目前最為風(fēng)行的建模語言,UML用于描述一般數(shù)據(jù)倉庫架構(gòu)的元模型。
2.MOF (Meta Object Facility 元對(duì)象工具)
MOF是OMG元模型和元數(shù)據(jù)的存儲(chǔ)標(biāo)準(zhǔn),用以定義存儲(chǔ)庫的結(jié)構(gòu)、對(duì)外接口和交換格式的映射規(guī)則。
3.XMI (XML Metadata Interchange,XML元數(shù)據(jù)交換)
XMI是基于XML的元數(shù)據(jù)交換。定義如何用XML表示基于MOF的元數(shù)據(jù),使元數(shù)據(jù)以XML文件流的方式進(jìn)行交換。
基于上列三個(gè)標(biāo)準(zhǔn),CWM為數(shù)據(jù)倉庫工具之間共享元數(shù)據(jù),制定了一整套關(guān)于模式、語法和語義的規(guī)范。主要包括:
(1)CWM元模型(Metamodel):描述數(shù)據(jù)倉庫系統(tǒng)共享的元模型。它由一系列子元模型構(gòu)成。
(2)CWM XML:CWM元模型的XML表示。
(3)CWM DTD:DW/BI共享元數(shù)據(jù)的交換格式。
(4)CWM IDL:DW/BI共享元數(shù)據(jù)的應(yīng)用程序訪問接口。
基于CWM的數(shù)據(jù)倉庫元數(shù)據(jù)轉(zhuǎn)換和管理模型可用圖1表示。從圖1不難理解,元數(shù)據(jù)庫也是基于CWM標(biāo)準(zhǔn),通過CWM元模型映射構(gòu)建。CWM 以UML 的元模型為基礎(chǔ),針對(duì)數(shù)據(jù)倉庫領(lǐng)域的應(yīng)用,使用特定的元類、元關(guān)系,將來自各異構(gòu)數(shù)據(jù)源和數(shù)據(jù)倉庫各個(gè)組件中的元數(shù)據(jù),通過CWM XML、CWM DTD、CWM IDL 三個(gè)規(guī)范,轉(zhuǎn)化為XML 文檔。為數(shù)據(jù)倉庫元數(shù)據(jù)管理提供了滿足元數(shù)據(jù)交換所需的語法和語義規(guī)范的、方便元數(shù)據(jù)交換和元數(shù)據(jù)存儲(chǔ)的XML文件。
三、基于CWM的數(shù)據(jù)倉庫ETL系統(tǒng)架構(gòu)
1.基于CWM的ETL系統(tǒng)架構(gòu)
在研究ETL和CWM的基礎(chǔ)上,設(shè)計(jì)出基于CWM的數(shù)據(jù)倉庫ETL過程的系統(tǒng)架構(gòu)。
2.系統(tǒng)架構(gòu)的結(jié)構(gòu)分析
(1)ETL子系統(tǒng)結(jié)構(gòu)
ETL子系統(tǒng)結(jié)構(gòu)由五個(gè)模塊組成。即:系統(tǒng)調(diào)度模塊、元數(shù)據(jù)管理模塊、數(shù)據(jù)抽取模塊、數(shù)據(jù)轉(zhuǎn)換模塊和數(shù)據(jù)裝載模塊。其中,數(shù)據(jù)抽取模塊負(fù)責(zé)將超市業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)進(jìn)行抽取并保存到臨時(shí)數(shù)據(jù)庫中;數(shù)據(jù)轉(zhuǎn)換模塊負(fù)責(zé)對(duì)抽取出來的數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換和計(jì)算匯總;數(shù)據(jù)裝載模塊負(fù)責(zé)將經(jīng)過清洗、轉(zhuǎn)換的、符合目標(biāo)數(shù)據(jù)模型的數(shù)據(jù)裝載到目標(biāo)數(shù)據(jù)庫中。以上三個(gè)模塊的活動(dòng)被系統(tǒng)調(diào)度模塊統(tǒng)一調(diào)度,結(jié)合元數(shù)據(jù)管理模塊對(duì)整個(gè)ETL過程進(jìn)行統(tǒng)一控制,用以實(shí)現(xiàn)ETL各步驟的定時(shí)觸發(fā)、正常執(zhí)行和異常控制等過程。
(2)CWM對(duì)系統(tǒng)元數(shù)據(jù)的規(guī)范
整個(gè)架構(gòu)以CWM元模型庫為基礎(chǔ),通過CWM工作機(jī)制,把各個(gè)層次的元數(shù)據(jù)規(guī)范化后,存儲(chǔ)在元數(shù)據(jù)庫中,再由元數(shù)據(jù)管理模塊支撐并控制整個(gè)架構(gòu)的運(yùn)行。
(3)建立集中式元數(shù)據(jù)庫
為了便于對(duì)數(shù)據(jù)倉庫的元數(shù)據(jù)進(jìn)行有效管理,按照通用的元數(shù)據(jù)管理標(biāo)準(zhǔn)建立一個(gè)集中式的元數(shù)據(jù)庫。在所建元數(shù)據(jù)庫中,通過建立“信息模型”的方法對(duì)元數(shù)據(jù)進(jìn)行分類,并建立分類存儲(chǔ)的、通用的信息目錄。把技術(shù)元數(shù)據(jù)和商業(yè)元數(shù)據(jù)存儲(chǔ)在不同的信息目錄中。便于適應(yīng)不同的服務(wù)目標(biāo)、不同的元數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)和管理。元數(shù)據(jù)信息目錄面向數(shù)據(jù)倉庫的應(yīng)用程序。應(yīng)用程序可以通過訪問該目錄,使用、存儲(chǔ)、管理元數(shù)據(jù);用戶也可以通過該目錄,對(duì)元數(shù)據(jù)進(jìn)行瀏覽、查詢和使用。整個(gè)架構(gòu),都集中在元數(shù)據(jù)的統(tǒng)一控制之下。
四、CWM對(duì)ETL提供的技術(shù)支持分析
1.CWM元模型結(jié)構(gòu)
由于系統(tǒng)架構(gòu)建立在CWM元模型基礎(chǔ)之上,CWM通過對(duì)元數(shù)據(jù)的統(tǒng)一規(guī)范和管理,實(shí)現(xiàn)了對(duì)整個(gè)架構(gòu)的支持。
為了便于分析CWM對(duì)ETL子系統(tǒng)中各個(gè)模塊的支持,圖3給出了CWM元模型結(jié)構(gòu)示意圖。在CWM的總體結(jié)構(gòu)中,可分為5個(gè)層次,由若干互不相同但又緊密相關(guān)的子元模型包構(gòu)成。圖中灰色部分是CWM對(duì)ETL子系統(tǒng)有著直接聯(lián)系和支撐CWM元模型包。
2.對(duì)數(shù)據(jù)抽取模塊的支持
在CWM的資源層中,五個(gè)元模型分別對(duì)五種不同的數(shù)據(jù)源進(jìn)行了建模。五種數(shù)據(jù)源格式分別是:面向?qū)ο蟮臄?shù)據(jù)格式、關(guān)系型數(shù)據(jù)格式、記錄型數(shù)據(jù)格式、多維數(shù)據(jù)格式和XML數(shù)據(jù)格式。這五個(gè)元模型所描述的數(shù)據(jù)格式相當(dāng)齊全,利用它們,可以把商場(chǎng)常用的、歷史遺留的數(shù)據(jù)源都描述出來。從而得到各種不同格式的數(shù)據(jù)源的元數(shù)據(jù),為ETL對(duì)數(shù)據(jù)源的抽取過程提供了支持。
3.對(duì)數(shù)據(jù)轉(zhuǎn)換模塊的支持
ETL的核心還是在于“T”這個(gè)過程,也就是轉(zhuǎn)換過程。而抽取和裝載一般可以作為轉(zhuǎn)換的輸入和輸出,因此,我們重點(diǎn)研究了CWM對(duì)數(shù)據(jù)轉(zhuǎn)換過程的支持。
在CWM分析層中,轉(zhuǎn)換包對(duì)ETL過程進(jìn)行了詳細(xì)的描述。轉(zhuǎn)換包的主要作用是:將一次轉(zhuǎn)換活動(dòng)的數(shù)據(jù)源和目標(biāo)準(zhǔn)數(shù)據(jù)關(guān)聯(lián)起來,同時(shí)支持“黑盒”和“白盒”轉(zhuǎn)換,可將一組轉(zhuǎn)換組成一個(gè)邏輯單元。一次轉(zhuǎn)換可以將一組源對(duì)象轉(zhuǎn)換成一組目標(biāo)對(duì)象。數(shù)據(jù)對(duì)象集合可以是任何模型元素,但通常是表、字段或者內(nèi)存對(duì)象。
CWM管理層中的數(shù)據(jù)倉庫操作包,記錄了數(shù)據(jù)倉庫的三個(gè)重要事件。其中的轉(zhuǎn)換執(zhí)行事件定義了記錄轉(zhuǎn)換活動(dòng)結(jié)果的類。在轉(zhuǎn)換完成之后,轉(zhuǎn)換活動(dòng)的結(jié)果可被活動(dòng)執(zhí)行類和步驟執(zhí)行類記錄。這個(gè)記錄行為是對(duì)發(fā)生在數(shù)據(jù)倉庫操作包中的一個(gè)內(nèi)部事件、或者其他類似方式的回應(yīng),為每個(gè)轉(zhuǎn)換執(zhí)行記錄開始、結(jié)束時(shí)間,各種進(jìn)展和結(jié)果的指標(biāo)。便于需要時(shí)查詢。
4.對(duì)數(shù)據(jù)調(diào)度模塊的支持
系統(tǒng)調(diào)度模塊負(fù)責(zé)對(duì)ETL過程進(jìn)行統(tǒng)一調(diào)度和異常控制,保證ETL正常運(yùn)行。在CWM的管理層中,數(shù)據(jù)倉庫處理包描述了數(shù)據(jù)倉庫處理(實(shí)際上就是轉(zhuǎn)換過程)的調(diào)度方面的信息。在數(shù)據(jù)倉庫處理包中,定義了能夠觸發(fā)轉(zhuǎn)換活動(dòng)執(zhí)行的一系列事件。這些事件控制了數(shù)據(jù)轉(zhuǎn)換過程的調(diào)度。
5.對(duì)數(shù)據(jù)裝載模塊的支持
數(shù)據(jù)裝載模塊負(fù)責(zé)將經(jīng)過清洗、轉(zhuǎn)換的、符合目標(biāo)數(shù)據(jù)模型的數(shù)據(jù)裝載到目標(biāo)數(shù)據(jù)庫中。在CWM的支持下,完成了對(duì)源數(shù)據(jù)的抽取和轉(zhuǎn)換,在系統(tǒng)元數(shù)據(jù)的控制下,把正確的數(shù)據(jù)加載到數(shù)據(jù)倉庫中,就是一件極其簡(jiǎn)單的事了。
總之,CWM為ETL 提供的技術(shù)支持,為ETL各個(gè)功能模塊的實(shí)現(xiàn)奠定了基礎(chǔ)。為系統(tǒng)架構(gòu)的實(shí)施提供了條件。同時(shí),也保證了ETL子系統(tǒng)的通用性和可擴(kuò)展性。
【商場(chǎng)數(shù)據(jù)倉庫ETL系統(tǒng)架構(gòu)設(shè)計(jì)】相關(guān)文章:
系統(tǒng)架構(gòu)設(shè)計(jì)模式大全08-22
基于云架構(gòu)的系統(tǒng)安全設(shè)計(jì)08-08
系統(tǒng)架構(gòu)設(shè)計(jì)師要素01-11
MES系統(tǒng)安全架構(gòu)設(shè)計(jì)09-19
系統(tǒng)架構(gòu)設(shè)計(jì)師考試之路01-11
三層架構(gòu)的商務(wù)智能系統(tǒng)設(shè)計(jì)12-25
系統(tǒng)架構(gòu)設(shè)計(jì)師考試報(bào)考條件12-30
系統(tǒng)架構(gòu)設(shè)計(jì)師輔導(dǎo):處理圖像01-11