(燕山大學(xué) 信息科學(xué)與工程學(xué)院 計(jì)算機(jī)應(yīng)用技術(shù)系, 河北 秦皇島 066004)
摘要:ETL是數(shù)據(jù)倉(cāng)庫(kù)獲得高質(zhì)量數(shù)據(jù)的重要環(huán)節(jié),在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)過(guò)程中占有極其重要的地位。為了便于ETL過(guò)程的設(shè)計(jì)、維護(hù)和修改,提出一種基于結(jié)構(gòu)圖的ETL過(guò)程建模方法,并依據(jù)該方法完成了ETL概念模型的設(shè)計(jì)。通過(guò)圖形化ETL過(guò)程中的元素和關(guān)聯(lián),該模型清晰直觀地反映了數(shù)據(jù)的來(lái)源和流向、源數(shù)據(jù)與目標(biāo)數(shù)據(jù)之間的映射和轉(zhuǎn)換關(guān)系,輔助設(shè)計(jì)人員更好地進(jìn)行ETL過(guò)程的設(shè)計(jì)和ETL過(guò)程的編碼實(shí)現(xiàn),使整個(gè)ETL設(shè)計(jì)過(guò)程更加方便、靈活。
關(guān)鍵詞:數(shù)據(jù)倉(cāng)庫(kù); 抽取轉(zhuǎn)換加載; 結(jié)構(gòu)圖; 模型
中圖分類號(hào):TP311文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2008)11-3354-03
Architecture graph-based approach for modeling ETL process
ZHANG Zhong-ping, ZHAO Rui-zhen
(Dept. of Computer Application Technology, College of Information Science Engineering, Yanshan University, Qinhuangdao Hebei 066004, China)
Abstract:ETL is an important part for the data warehouse to gain data with high quality, and it plays a key role in building the data warehouse system. The paper proposed a methodology for modeling ETL process based on an architecture graph, with the goal of facilitating the designment, maintenance and modification of the ETL process. On the basis of this modeling approach, the paper completed the design of ETL conceptual model. By representing the elements and relationships of the ETL process diagrammatically, it expressed the data’s coming and going, as well as their mapping and transformation relationships clearly and intuitively. It also supported the ETL designer to design the ETL process and develope the code efficiently, and improved the flexibility and reliability of the ETL process designment greatly.
Key words:data warehouse; ETL; architecture graph; model
0引言
ETL(extract-transform-load)是數(shù)據(jù)抽取轉(zhuǎn)換加載過(guò)程,即從各種異構(gòu)操作型數(shù)據(jù)源中抽取數(shù)據(jù),并對(duì)抽取到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換處理(包括數(shù)據(jù)轉(zhuǎn)換、清洗和標(biāo)準(zhǔn)化),最后加載到數(shù)據(jù)倉(cāng)庫(kù)中的過(guò)程。它是建立數(shù)據(jù)倉(cāng)庫(kù)的基石和靈魂,也是建立數(shù)據(jù)倉(cāng)庫(kù)的必要步驟[1,2],在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)過(guò)程中占有極其重要的地位。一般情況下,開(kāi)發(fā)ETL的工作量要占整個(gè)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)開(kāi)發(fā)量的60%~80%[3]。
ETL過(guò)程的設(shè)計(jì)和維護(hù)是構(gòu)建一個(gè)成功數(shù)據(jù)倉(cāng)庫(kù)方案的關(guān)鍵因素,因?yàn)椴徽_的或誤導(dǎo)的數(shù)據(jù)將產(chǎn)生錯(cuò)誤的業(yè)務(wù)決策信息,所以在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)的早期階段,一個(gè)正確的ETL過(guò)程設(shè)計(jì)能大大提高數(shù)據(jù)質(zhì)量,從而為企業(yè)提供有用的決策信息。在傳統(tǒng)的數(shù)據(jù)庫(kù)建設(shè)過(guò)程中,往往強(qiáng)調(diào)數(shù)據(jù)倉(cāng)庫(kù)本身的建模和前端數(shù)據(jù)展示,而對(duì)ETL的設(shè)計(jì)和建模關(guān)心不足;同時(shí),在目前數(shù)據(jù)倉(cāng)庫(kù)的早期設(shè)計(jì)階段,多數(shù)是采用E-R圖來(lái)表達(dá)數(shù)據(jù)倉(cāng)庫(kù)概念模型[4],這些模型不能很好地表達(dá)數(shù)據(jù)來(lái)源和數(shù)據(jù)間的聯(lián)系,不能滿足ETL過(guò)程設(shè)計(jì)的需要。因此,需要一種建模方法來(lái)很好地設(shè)計(jì)和維護(hù)ETL過(guò)程,以便讓用戶在統(tǒng)一數(shù)據(jù)模型上定義ETL過(guò)程,清晰地反映ETL過(guò)程中各個(gè)源與目標(biāo)的內(nèi)部結(jié)構(gòu)和組成、明確數(shù)據(jù)的流動(dòng)去向和轉(zhuǎn)換方式、追蹤數(shù)據(jù)來(lái)源與轉(zhuǎn)換信息、屏蔽ETL過(guò)程中具體實(shí)現(xiàn)的差異,幫助開(kāi)發(fā)人員理解ETL架構(gòu),輔助設(shè)計(jì)人員設(shè)計(jì)出質(zhì)量較好的ETL過(guò)程。
數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)的正確性和有效性需要ETL過(guò)程來(lái)保證,ETL過(guò)程的正確與否關(guān)系到數(shù)據(jù)倉(cāng)庫(kù)的可用性,所以如何有效地為ETL過(guò)程設(shè)計(jì)一種模型,將是迫切需要解決的問(wèn)題,并且具有廣闊的應(yīng)用前景。
1基本概念
11ETL原理
ETL,即數(shù)據(jù)抽取、轉(zhuǎn)換、加載的過(guò)程。主要包含以下三個(gè)方面內(nèi)容[5,6]:
a)抽取(extract)。數(shù)據(jù)抽取是捕獲數(shù)據(jù)源的過(guò)程,即將數(shù)據(jù)從各種原始的業(yè)務(wù)系統(tǒng)中讀取出來(lái)。這是所有工作的前提。
b)轉(zhuǎn)換(transform)。按照預(yù)先設(shè)計(jì)好的規(guī)則將抽取得到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換、清洗,處理一些冗余、歧義、不完整、違反業(yè)務(wù)規(guī)則的數(shù)據(jù),統(tǒng)一數(shù)據(jù)的粒度,使本來(lái)異構(gòu)的數(shù)據(jù)格式統(tǒng)一起來(lái)。
c)加載(load)。將轉(zhuǎn)換后的數(shù)據(jù)按照計(jì)劃增量或全部導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)中。
從整體角度來(lái)看,ETL的主要作用在于其屏蔽了復(fù)雜的業(yè)務(wù)邏輯,從而為各種基于數(shù)據(jù)倉(cāng)庫(kù)的分析和應(yīng)用提供了統(tǒng)一的數(shù)據(jù)接口,這正是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重要目的。
12ETL概念模型
ETL概念模型[7]描述了整個(gè)ETL任務(wù)流程的邏輯結(jié)構(gòu),這種結(jié)構(gòu)獨(dú)立于任何軟件或者數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),只給出一個(gè)在ETL過(guò)程中運(yùn)行所需數(shù)據(jù)的形式表示。ETL概念模型并不針對(duì)具體的工具制訂,與數(shù)據(jù)庫(kù)系統(tǒng)無(wú)關(guān)、與應(yīng)用程序無(wú)關(guān)、與工具無(wú)關(guān)。在這一概念級(jí)中,不必考慮物理實(shí)現(xiàn)的細(xì)節(jié),只將注意力集中在構(gòu)造源與目標(biāo)實(shí)體及屬性之間的映射和轉(zhuǎn)換關(guān)系上。
13結(jié)構(gòu)圖
定義1結(jié)構(gòu)圖。定義結(jié)構(gòu)圖為一個(gè)有向圖G=(V,E)。其中:V為圖的節(jié)點(diǎn),E為圖的邊,V=E∪A∪T∪Cn∪N∪D,E=Po∪Pr∪Cr∪Ir。符號(hào)E、A、T、Cn、N、D分別表示ETL模型中的實(shí)體、屬性、轉(zhuǎn)換、ETL約束、注釋和數(shù)據(jù)域;Po、Pr、Cr、Ir表示元素之間的部分關(guān)系、供應(yīng)關(guān)系、候選關(guān)系和實(shí)例關(guān)系。此外,為這些元素和關(guān)聯(lián)分配一個(gè)定義良好的圖符,使用這些圖符來(lái)表示ETL模型中的要素組成部分。結(jié)構(gòu)圖中的節(jié)點(diǎn)和邊的圖形表示分別如表1、2所示。
2ETL過(guò)程建模
21實(shí)例
為了便于討論,下面給出一個(gè)簡(jiǎn)單實(shí)例[8]。該實(shí)例描述了從源數(shù)據(jù)庫(kù)S1和S2中抽取數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)DW的過(guò)程。其中:S1是歐洲數(shù)據(jù)庫(kù);S2是美國(guó)數(shù)據(jù)庫(kù);DW是歐洲數(shù)據(jù)倉(cāng)庫(kù)。
表S1.parts(Pkey,Qty,cost)中的數(shù)據(jù)由表PS1(Pkey,Qty,dept)和表PS2(Pkey,cost)通過(guò)外連接得到。
表S2.parts(Pkey,date,Qty,cost,dept)的數(shù)據(jù)來(lái)源可以是AnnualParts(存儲(chǔ)季度信息)或RecentParts (存儲(chǔ)日信息)。
表DW.parts(Pkey,date,Qty,cost)存儲(chǔ)每種商品(Pkey)成本(cost)和數(shù)量(Qty)的日(date)信息。
22ETL模型中的要素描述
1)實(shí)體對(duì)應(yīng)于源數(shù)據(jù)庫(kù)中的表和文件以及數(shù)據(jù)倉(cāng)庫(kù)中的事實(shí)表和維表,由表名和一組屬性集描述,如S1.parts(Pkey,Qty,cost)、S2.parts(Pkey,date,Qty,cost,dept)和DW.parts(Pkey,date,Qty,cost)均表示實(shí)體。用矩形框來(lái)表示ETL過(guò)程中的實(shí)體,框內(nèi)注明實(shí)體的名稱。
2)屬性作用如同ER模型中的屬性,是實(shí)體的最小信息單位,如表的列。實(shí)體S1.parts中的屬性有Pkey、Qty、cost。
3)轉(zhuǎn)換將數(shù)據(jù)從源數(shù)據(jù)庫(kù)映射到目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)所經(jīng)過(guò)的一系列操作稱為轉(zhuǎn)換。轉(zhuǎn)換分兩類:a)過(guò)濾或數(shù)據(jù)清洗操作,如非空值檢測(cè)、主外鍵違反檢測(cè)等;b)轉(zhuǎn)換操作,如數(shù)據(jù)類型轉(zhuǎn)換、代理鍵分配等。
表3列出了ETL模型中的主要轉(zhuǎn)換操作,并賦予各個(gè)操作一個(gè)圖符。
4)ETL約束用ETL約束來(lái)表示某數(shù)據(jù)必須滿足一定條件。如在屬性或?qū)傩约线M(jìn)行主鍵約束或非空值約束,就表示這些屬性或?qū)傩约仨殱M足主鍵約束或非空條件。
5)注釋注釋是對(duì)實(shí)體或轉(zhuǎn)換等進(jìn)行描述或解釋。在ETL模型中的作用一般包括以下幾個(gè)方面:a)設(shè)計(jì)策略或約束的解釋;b)應(yīng)用函數(shù)的語(yǔ)義解釋;c)ETL過(guò)程中基于時(shí)間/事件的調(diào)度、監(jiān)控、異常處理、錯(cuò)誤恢復(fù)等的解釋說(shuō)明。
一個(gè)注釋可包含多條子句,每個(gè)子句定義為〈類型〉::〈內(nèi)容〉。類型有三種形式,分別為f::(表示函數(shù)類型)、e::(表示表達(dá)式類型)和t::(表示簡(jiǎn)單文本類型)。
6)數(shù)據(jù)域表示模型中實(shí)體的來(lái)源,如S1.parts和S2.parts分別來(lái)自源數(shù)據(jù)庫(kù)S1和S2 ,DW.parts則來(lái)自數(shù)據(jù)倉(cāng)庫(kù)DW。
7)部分關(guān)系部分關(guān)系表明實(shí)體與屬性之間以及實(shí)體與數(shù)據(jù)源之間的歸屬關(guān)系,即實(shí)體與其相應(yīng)的屬性集之間以及實(shí)體與數(shù)據(jù)源之間存在部分關(guān)系,如源數(shù)據(jù)庫(kù)S1和表S1.parts以及表S1.parts和其屬性(Pkey,Qty,cost)之間是部分關(guān)系。
8)供應(yīng)關(guān)系表示數(shù)據(jù)來(lái)源、流向或數(shù)據(jù)之間的關(guān)系。在實(shí)體級(jí),供應(yīng)關(guān)系將原實(shí)體映射到目標(biāo)實(shí)體,原實(shí)體為供應(yīng)者,目標(biāo)實(shí)體為消費(fèi)者;在屬性級(jí),供應(yīng)關(guān)系通過(guò)相關(guān)轉(zhuǎn)換將輸入屬性映射到輸出屬性,輸入屬性為供應(yīng)者,輸出屬性為消費(fèi)者。
9)候選關(guān)系在數(shù)據(jù)倉(cāng)庫(kù)環(huán)境中,與數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)有關(guān)聯(lián)的源表可能是由多個(gè)候選源表或源文件提供,通過(guò)候選關(guān)系將這些候選源標(biāo)志出來(lái),以備ETL過(guò)程修改或維護(hù)之用。如源表S2.parts中的數(shù)據(jù)既可以從表AnnualParts中得到,又可以從表RecentParts中得到,那么文件AnnualParts和RecentParts即為表S2.parts的候選數(shù)據(jù)源,AnnualParts和RecentParts與表S2.parts之間存在候選關(guān)系。
在多個(gè)候選源中,只選擇其中一個(gè)作為這個(gè)實(shí)體的活動(dòng)候選數(shù)據(jù)源。
10)實(shí)例關(guān)系實(shí)例之間的關(guān)系用一端帶箭頭的虛線表示。
23ETL過(guò)程的建模步驟
231數(shù)據(jù)來(lái)源的確定
在數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)的最早階段,設(shè)計(jì)者關(guān)注兩樣工作:用戶需求的收集和數(shù)據(jù)源分析。依照用戶需求建立目標(biāo)數(shù)據(jù)模型,根據(jù)目標(biāo)數(shù)據(jù)模型進(jìn)行數(shù)據(jù)源的分析和驗(yàn)證,收集有關(guān)數(shù)據(jù)源的信息,如數(shù)據(jù)源的位置、數(shù)據(jù)源所處的平臺(tái)等,并且確認(rèn)哪些是來(lái)自正式的數(shù)據(jù)源或者是非正式的數(shù)據(jù)源(正式的數(shù)據(jù)源是由業(yè)務(wù)系統(tǒng)提供支持;而非正式的數(shù)據(jù)源,如分析競(jìng)爭(zhēng)對(duì)手時(shí)的市場(chǎng)占有調(diào)查報(bào)告等,這些是不能由現(xiàn)有的業(yè)務(wù)系統(tǒng)支持,而是來(lái)自于用戶的收集與使用,這些信息往往需要一個(gè)獲取信息的處理過(guò)程,將其收集到數(shù)據(jù)倉(cāng)庫(kù)中),從而為每個(gè)事實(shí)表與維表確定數(shù)據(jù)來(lái)源,同時(shí)確定ETL過(guò)程的范圍。
在本文提供的實(shí)例中,為DW.parts(Pkey,date,Qty,cost)提供數(shù)據(jù)的數(shù)據(jù)源有S1.parts(Pkey,Qty,cost)和S2.parts(Pkey,date,Qty,cost,dept);為S1.parts(Pkey,Qty,cost)提供數(shù)據(jù)的數(shù)據(jù)源有PS1(Pkey,Qty,dept)和表PS2 (Pkey, cost);為S2.parts(Pkey,date,Qty,cost,dept)提供數(shù)據(jù)的數(shù)據(jù)源可以是AnnualParts或RecentParts,且表S1.parts為歐洲的值和格式,S2.parts為美國(guó)的值和格式。
232候選數(shù)據(jù)源的確定
確定了數(shù)據(jù)源后,必須仔細(xì)研究每個(gè)數(shù)據(jù)源的內(nèi)容以及可獲得性程度等。因?yàn)樵谀硞€(gè)系統(tǒng)中同樣一個(gè)目標(biāo)值的數(shù)據(jù)來(lái)源可能會(huì)有多個(gè),這些數(shù)據(jù)必須要考慮它的其他方式的來(lái)源。這樣該過(guò)程并不是一個(gè)自動(dòng)化的過(guò)程,更多的是依靠經(jīng)驗(yàn),根據(jù)數(shù)據(jù)量、數(shù)據(jù)質(zhì)量、數(shù)據(jù)內(nèi)容、數(shù)據(jù)完整性等方面來(lái)確定哪個(gè)是將要使用的數(shù)據(jù)源,并選擇需要的數(shù)據(jù)內(nèi)容。通過(guò)對(duì)所有的數(shù)據(jù)源進(jìn)行詳細(xì)的分析,了解其真實(shí)的數(shù)據(jù)內(nèi)容。
S2.parts(Pkey,date,Qty,cost,dept)的數(shù)據(jù)可以由AnnualParts或RecentParts得到,所以表S2.parts有兩個(gè)候選數(shù)據(jù)源,具體選哪個(gè)候選源作為將要使用的數(shù)據(jù)源還需進(jìn)一步考慮。
233源數(shù)據(jù)到目標(biāo)數(shù)據(jù)的映射
數(shù)據(jù)變換過(guò)程中的數(shù)據(jù)流滿足數(shù)據(jù)庫(kù)、實(shí)體和屬性三個(gè)層次上的映射關(guān)系,它們決定數(shù)據(jù)流的來(lái)源和去向。數(shù)據(jù)庫(kù)層映射定義源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)間的關(guān)系,實(shí)體層映射定義源實(shí)體與目標(biāo)實(shí)體間的關(guān)系,屬性層映射是數(shù)據(jù)源和目標(biāo)實(shí)體層中最低層的映射關(guān)系,即表中字段間的映射關(guān)系。當(dāng)數(shù)據(jù)源中的一個(gè)數(shù)據(jù)項(xiàng)與數(shù)據(jù)倉(cāng)庫(kù)的目標(biāo)建立屬性與屬性的映射關(guān)系,就反映在實(shí)際的ETL過(guò)程執(zhí)行中數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)項(xiàng)是從哪個(gè)特定的數(shù)據(jù)源填充,這些工作包括屬性到屬性的映射、屬性轉(zhuǎn)換兩部分。在簡(jiǎn)單的情況下,源與目標(biāo)之間可直接映射,但大多數(shù)情況下源與目標(biāo)的映射必須經(jīng)過(guò)適當(dāng)?shù)霓D(zhuǎn)換才能得以實(shí)現(xiàn)。
建立源與目標(biāo)之間的映射關(guān)系具體分為以下七個(gè)步驟:
a)根據(jù)結(jié)構(gòu)圖的定義畫出ETL過(guò)程中涉及的數(shù)據(jù)實(shí)體及其相關(guān)屬性;
b)確定實(shí)體間的連線,畫出實(shí)體間的連線與箭頭,標(biāo)明實(shí)體的關(guān)系;
c)根據(jù)原始數(shù)據(jù)和目標(biāo)數(shù)據(jù)確定中間結(jié)果的數(shù)據(jù)結(jié)構(gòu);
d)畫出源與目標(biāo)之間的數(shù)據(jù)來(lái)源與流向的連線和箭頭,標(biāo)明數(shù)據(jù)間的關(guān)系;
e)根據(jù)需要確定各屬性間的轉(zhuǎn)換,標(biāo)明轉(zhuǎn)換過(guò)程與轉(zhuǎn)換類別;
f)確定輸入的各個(gè)參數(shù)值;
g)精練數(shù)據(jù)結(jié)構(gòu)圖。
24ETL概念模型
根據(jù)本文提供的實(shí)例,按照以上設(shè)計(jì)步驟,運(yùn)用結(jié)構(gòu)圖中的圖符和形式化規(guī)則,畫出基于結(jié)構(gòu)圖的ETL概念模型如圖1所示。
利用結(jié)構(gòu)圖中定義良好的圖符來(lái)表示ETL過(guò)程中的元素和關(guān)聯(lián),從而圖形化整個(gè)ETL過(guò)程,并按照一定規(guī)則完成ETL概念模型的設(shè)計(jì)。從圖1可以形象直觀地看出,整個(gè)ETL過(guò)程涉及到了哪些數(shù)據(jù)源、源數(shù)據(jù),通過(guò)怎樣的轉(zhuǎn)換操作映射到目標(biāo)數(shù)據(jù)、轉(zhuǎn)換操作的語(yǔ)義是什么以及屬性或?qū)傩约媳仨殱M足什么樣的約束條件等設(shè)計(jì)ETL過(guò)程所必需的信息。
3結(jié)束語(yǔ)
在數(shù)據(jù)倉(cāng)庫(kù)的早期設(shè)計(jì)階段,提出一種基于結(jié)構(gòu)圖的ETL過(guò)程建模方法來(lái)建立圖形化的ETL過(guò)程框架。本文首先給出了結(jié)構(gòu)圖的定義,圖形化表示ETL模型中的元素;其次,對(duì)ETL模型中的元素進(jìn)行詳細(xì)描述;最后,給出相應(yīng)的設(shè)計(jì)ETL模型的主要步驟,并基于具體實(shí)例完成了ETL概念模型的設(shè)計(jì)。通過(guò)該設(shè)計(jì)方法使整個(gè)ETL設(shè)計(jì)過(guò)程規(guī)范化、重用化,清晰地指導(dǎo)開(kāi)發(fā)人員在ETL過(guò)程的代碼開(kāi)發(fā),提高工作效率。
參考文獻(xiàn):
[1]ZHANG Xu-feng, SUN Wei-wei, WANG Wei,et al.Generating incremental ETL processes automatically[C]//Proc of the 1st International Multi-Symposiums on Computer and Computational Sciences.Washington DC:IEEE Computer Society, 2006:516-521.
[2]毛彧. 銀行數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中ETL的總體設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息與電子工程, 2007,5(4):292-295.
[3]尤玉林, 張憲民. 一種可靠的數(shù)據(jù)倉(cāng)庫(kù)中ETL策略和架構(gòu)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2005,41
(10):172-175,229.
[4]LEOPOLDE Z, MATILDE C. A model driven approach for data warehouse conceptual design[C]//Proc of the 7th International Baltic Conference on Databases and Information Systems. Piscataway: Institute of Electrical and Electronics Engineers Computer Society, 2006:114-121.
[5]JUAN T, SERGIO L M. An UML based approch for modeling ETL processes in data warehouses[C]//Proc of Conceptual Modeling. Chicago: Notes in Computer Science, 2003:307-320.
[6]郭曉紅. ETL實(shí)施過(guò)程研究[J]. 網(wǎng)絡(luò)與信息, 2007,21(7):67-67.
[7]LI Ze-hai, SUN Ji-gui, YU Hai-hong, et al. Common cube-based conceptual modeling of ETL processes[C]//Proc of the 5th International Conference on Control and Automation. New York: Institute of Electrical and Electronics Engineers Inc, 2005:131-136.
[8]SIMITSIS A, VASSILIADIS P, SELLIS T. Logical optimization of ETL Workflows[J].IEEE Trans on Knowledge and Data Engineering, 2006,17(10):150-161.