一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載etl的執(zhí)行方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法及裝置,該方法包括:針對(duì)一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合;確定每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼;將生成的可執(zhí)行代碼加載到云計(jì)算環(huán)境中執(zhí)行,采用本發(fā)明這里提出的技術(shù)方案,能夠較好地節(jié)省I/O處理資源,提高ETL工作流的處理效率。
【專(zhuān)利說(shuō)明】一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其是涉及一種ETL(Extraction-Transformation-Loading,數(shù)據(jù)抽取、轉(zhuǎn)換和加載)的執(zhí)行方法及裝置。
【背景技術(shù)】
[0002]ETL是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)比較重要的一個(gè)部分。其按照預(yù)先設(shè)計(jì)好的規(guī)則,提供對(duì)不同數(shù)據(jù)源的數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換和清洗,集成和凈化來(lái)自于多個(gè)不同系統(tǒng)的數(shù)據(jù),最后將轉(zhuǎn)換完的數(shù)據(jù)增量或者全部數(shù)據(jù)載入目標(biāo)數(shù)據(jù)庫(kù)中。ETL的處理過(guò)程如圖1所示,其從不同的異構(gòu)數(shù)據(jù)源流得到相同的目標(biāo)數(shù)據(jù),作為聯(lián)系分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。
[0003]現(xiàn)有技術(shù)中,一般采用配置的方法實(shí)現(xiàn)ETL工作流的創(chuàng)建,該方法可以設(shè)置ETL流程的執(zhí)行順序和依賴(lài)關(guān)系,以及創(chuàng)建或更新ETL工作流,從而讓流程定制者能夠?qū)ψ陨硖峤坏腅TL工作流進(jìn)行管理。ETL工作流由基本活動(dòng)單元組成,現(xiàn)有技術(shù)中ETL工作流的優(yōu)化需要通過(guò)有經(jīng)驗(yàn)的技術(shù)人員來(lái)實(shí)現(xiàn),技術(shù)人員按照預(yù)設(shè)規(guī)則對(duì)基本活動(dòng)單元分別進(jìn)行操作處理,然后將處理后的ETL工作流采用并發(fā)方式進(jìn)行ETL處理。例如技術(shù)人員將ETL流程部署到一個(gè)計(jì)算機(jī)集群環(huán)境中,然后將ETL流程分發(fā)到多臺(tái)計(jì)算機(jī)上進(jìn)行并行執(zhí)行。現(xiàn)有技術(shù)中通過(guò)人工的方式對(duì)ETL進(jìn)行處理,依賴(lài)于技術(shù)人員的專(zhuān)業(yè)知識(shí),處理效率比較低,局限性較強(qiáng),并且現(xiàn)有技術(shù)中只是簡(jiǎn)單的由技術(shù)人員將ETL工作流分發(fā)到多臺(tái)計(jì)算機(jī)中進(jìn)行處理,算法在執(zhí)行過(guò)程中需要占用較多的I/O處理資源,并且現(xiàn)有技術(shù)中這種基于集群的處理方式還不能有效的運(yùn)用到異構(gòu)網(wǎng)絡(luò)的通信環(huán)境中。
[0004]綜上所述,現(xiàn)有技術(shù)中提出的通過(guò)人工的方式實(shí)現(xiàn)ETL工作流的處理,局限性較強(qiáng),需要占用較多的I/o處理資源,處理效率比較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法及裝置,能夠較好地節(jié)省I/o處理資源,提高處理效率。
[0006]為解決上述問(wèn)題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法,包括:針對(duì)一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合;確定每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼;將生成的可執(zhí)行代碼加載到云計(jì)算環(huán)境中執(zhí)行。
[0007]為解決上述問(wèn)題,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行裝置,包括:組合活動(dòng)集合構(gòu)建單元,用于針對(duì)一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合;可執(zhí)行代碼確定單元,用于確定組合活動(dòng)集合構(gòu)建單元構(gòu)建的每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼;加載單元,用于將可執(zhí)行代碼確定單元生成的可執(zhí)行代碼加載到云計(jì)算環(huán)境中執(zhí)行。[0008]采用上述技術(shù)方案,針對(duì)一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合,然后在構(gòu)建的組合活動(dòng)集合中確定對(duì)應(yīng)的云計(jì)算映射集合,并將確定出的云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼,最后將可執(zhí)行代碼加載到云計(jì)算環(huán)境中執(zhí)行,從而能夠自動(dòng)的對(duì)ETL工作流進(jìn)行一系列處理,避免了現(xiàn)有技術(shù)中存在的由人工處理ETL工作流需要依賴(lài)于專(zhuān)業(yè)知識(shí)的局限性,能夠較好地節(jié)省I/O處理資源,提高處理效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0009]圖1為現(xiàn)有技術(shù)中,提出的ETL處理過(guò)程示意圖;
[0010]圖2為本發(fā)明實(shí)施例一中,提出的一種ETL執(zhí)行系統(tǒng)架構(gòu)圖;
[0011]圖3a為本發(fā)明實(shí)施例一中,提出的ETL的執(zhí)行原理示意圖;
[0012]圖3b為本發(fā)明實(shí)施例一中,提出的ETL的執(zhí)行方法流程圖;
[0013]圖4為本發(fā)明實(shí)施例一中,提出的構(gòu)建的一種組合活動(dòng)集合示意圖;
[0014]圖5a為本發(fā)明實(shí)施例一中,提出的將基本活動(dòng)單元按照交換的方式進(jìn)行等價(jià)變換示意圖;
[0015]圖5b為本發(fā)明實(shí)施例一中,提出的將基本活動(dòng)單元按照合并的方式進(jìn)行等價(jià)變換示意圖;
[0016]圖5c為本發(fā)明實(shí)施例一中,提出的將基本活動(dòng)單元按照復(fù)制的方式進(jìn)行等價(jià)變換示意圖;
[0017]圖6a為本發(fā)明實(shí)施例一中,提出的分散-合并計(jì)算模式示意圖;
[0018]圖6b為本發(fā)明實(shí)施例一中,提出的優(yōu)化后的分散-合并計(jì)算模式示意圖;
[0019]圖7為本發(fā)明實(shí)施例二中,提出的ETL的執(zhí)行裝置結(jié)構(gòu)組成圖。
【具體實(shí)施方式】
[0020]針對(duì)現(xiàn)有技術(shù)中存在的ETL的執(zhí)行方法需要通過(guò)人工的方式實(shí)現(xiàn),局限性較強(qiáng),并且在對(duì)ETL執(zhí)行并發(fā)處理時(shí),需要占用較多的I/O處理資源,使得處理效率比較低的問(wèn)題,本發(fā)明實(shí)施例這里提出一種ETL的執(zhí)行方法,對(duì)提交的ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合,然后確定得到的組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定出的云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼并加載到云計(jì)算環(huán)境中進(jìn)行執(zhí)行。本發(fā)明這里提出的技術(shù)方案,適用于每個(gè)用戶(hù)群體,普適性較強(qiáng),并且,能夠較好地節(jié)省I/o處理資源,提供處理效率。
[0021]下面將結(jié)合各個(gè)附圖對(duì)本發(fā)明實(shí)施例技術(shù)方案的主要實(shí)現(xiàn)原理、【具體實(shí)施方式】及其對(duì)應(yīng)能夠達(dá)到的有益效果進(jìn)行詳細(xì)地闡述。
[0022]實(shí)施例一
[0023]本發(fā)明實(shí)施例一這里提出一種ETL執(zhí)行系統(tǒng)以及基于該系統(tǒng)架構(gòu)的ETL執(zhí)行方法,其具體架構(gòu)如圖2所示,該系統(tǒng)是基于云環(huán)境部署,能夠較好地利用云環(huán)境提供的計(jì)算能力。具體包括應(yīng)用層、模板層和優(yōu)化層。
[0024]其中,應(yīng)用層主要用于支持用戶(hù)通過(guò)基于瀏覽器的方式創(chuàng)建ETL工作流,模板層用于提供創(chuàng)建ETL工作流所使用的基本活動(dòng)單元模板,如投影、選擇等基本活動(dòng)單元模板。其中,基本活動(dòng)單元模板可以存儲(chǔ)在活動(dòng)分類(lèi)管理庫(kù)中進(jìn)行管理。優(yōu)化層用于實(shí)現(xiàn)對(duì)用戶(hù)提交的ETL工作流進(jìn)行優(yōu)化,并將優(yōu)化后的ETL工作流加載到云環(huán)境中執(zhí)行。
[0025]基于圖2所示的系統(tǒng)架構(gòu),本發(fā)明實(shí)施例一這里提出一種ETL的執(zhí)行方法,其原理如圖3a所示,包括ETL工作流創(chuàng)建、ETL工作流優(yōu)化、ETL工作流加載具體流程如圖3b所示,包括:
[0026]步驟31,用戶(hù)通過(guò)基于瀏覽器的方式創(chuàng)建ETL工作流并提交。
[0027]其中,在圖2所示的系統(tǒng)架構(gòu)中,可以將模板層提供的針對(duì)具體業(yè)務(wù)的基本活動(dòng)單元模板存儲(chǔ)在活動(dòng)分類(lèi)管理庫(kù)中進(jìn)行管理。用戶(hù)可以在基本活動(dòng)單元管理庫(kù)中選擇和業(yè)務(wù)相關(guān)的ETL組件創(chuàng)建ETL工作流,并將創(chuàng)建的ETL工作流提交。
[0028]步驟32,針對(duì)接收到的一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合。
[0029]其中,對(duì)于ETL中所有的基本活動(dòng)單元都可以按照下述定義方式對(duì)其進(jìn)行分類(lèi)管理,這樣可以對(duì)接收到的ETL工作流中基本活動(dòng)單元類(lèi)別進(jìn)行識(shí)別。
[0030]具體地,基本活動(dòng)單元(EA),是表示對(duì)輸入的記錄集進(jìn)行一次原子操作,得到一個(gè)輸出的記錄集?;净顒?dòng)單元EA是一個(gè)四元組,即EA={ID,I,0,S,C},其中ID是組成ELT工作流活動(dòng)的唯一標(biāo)識(shí),并且ID也用于表示該基本活動(dòng)單元在一個(gè)ETL工作流中的執(zhí)行位置;I為輸入數(shù)據(jù)的元數(shù)據(jù);O為輸出數(shù)據(jù)的元數(shù)據(jù);C為基本活動(dòng)單元的執(zhí)行代價(jià);S表示輸入元數(shù)據(jù)變換到輸出元數(shù)據(jù)。其中,可以將ETL工作流中包含的基本活動(dòng)單元分為功能活動(dòng)集合(Function Schema)和產(chǎn)生活動(dòng)集合兩類(lèi)(Generated Schema):
[0031]功能活動(dòng)集合,表示在ETL工作流中,針對(duì)同一數(shù)據(jù)源進(jìn)行操作的所有基本活動(dòng)單元的集合,例如,基本活動(dòng)單元的元數(shù)據(jù)為[a, b, c, d],而在基本活動(dòng)單元中被處理的屬性為b和C,則輸出的元數(shù)據(jù)為[b,c],例如ETL工作流中的投影、選擇等基本活動(dòng)單元。
[0032]產(chǎn)生活動(dòng)集合:表示產(chǎn)生新屬性的基本活動(dòng)單元的集合。例如,基本活動(dòng)單元輸入的元數(shù)據(jù)為[a,b,c,d],在基本活動(dòng)單元的執(zhí)行過(guò)程中產(chǎn)生了新的屬性為e,則產(chǎn)生屬性集合為[e]。例如基本活動(dòng)單元中的連接、統(tǒng)計(jì)等基本活動(dòng)單元。
[0033]其中,可以通過(guò)分類(lèi)處理方式將組成該ETL工作流的所有基本活動(dòng)單元?jiǎng)澐譃楣δ芑顒?dòng)集合和產(chǎn)生活動(dòng)集合。然后將功能活動(dòng)集合包含的基本活動(dòng)單元和產(chǎn)生活動(dòng)集合中包含的基本活動(dòng)單元進(jìn)行組合,構(gòu)建成至少一個(gè)組合活動(dòng)集合。其中,每個(gè)組合活動(dòng)集合中包含至少一個(gè)功能活動(dòng)集合中的基本活動(dòng)單元,且只包含一個(gè)產(chǎn)生活動(dòng)集合中的基本活動(dòng)單元,且產(chǎn)生活動(dòng)集合中的基本活動(dòng)單元在該組成活動(dòng)集合的尾端。例如圖4所示,為構(gòu)建的組合活動(dòng)集合。
[0034]具體地,組合活動(dòng)集合中包含的每個(gè)元素可以稱(chēng)之為組合活動(dòng),組合活動(dòng)是指將幾個(gè)基本活動(dòng)單元進(jìn)行組合來(lái)完成對(duì)ETL工作流中同一個(gè)數(shù)據(jù)源的處理過(guò)程。通過(guò)構(gòu)建組合活動(dòng)集合,如圖4所示,可以將ETL工作流分解成若干個(gè)大粒度的組合。并且,通過(guò)構(gòu)建組合活動(dòng)集合,可以將ETL工作流分解為不同的層次,分層的方式可以為:如果組合活動(dòng)集合中包含至少一個(gè)元素,則層次就加I。例如圖4所示的ETL工作流則可以分為兩個(gè)層次,第一個(gè)層次包含CEA包含CEA3,第二層次包含CEA1和CEA2。
[0035]通過(guò)分類(lèi)處理的方式可將ETL工作流進(jìn)行組合活動(dòng)集合的構(gòu)建以及層次的分解。其中,對(duì)于將ETL工作流的基本活動(dòng)單元進(jìn)行組合活動(dòng)結(jié)合的構(gòu)建,可以實(shí)現(xiàn)將若干個(gè)基本活動(dòng)單元串聯(lián)起來(lái),使ETL工作與云計(jì)算環(huán)境中的計(jì)算模型相匹配,有助于減少計(jì)算時(shí)產(chǎn)生的I/O開(kāi)銷(xiāo),提高ETL工作流的執(zhí)行效率。其次,通過(guò)組合活動(dòng)集合的構(gòu)建,可采用分層的方法將接收到的ETL工作流轉(zhuǎn)換為規(guī)模更小的處理單元。
[0036]步驟33,確定構(gòu)建的每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
[0037]其中,若步驟32中只構(gòu)建成一個(gè)組合活動(dòng)集合,具體處理方式可以但不限于有以下兩種:
[0038]第一種方式:將構(gòu)建的一個(gè)組合活動(dòng)集合作為云計(jì)算映射集合,然后將全部云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
[0039]第二種方式:將構(gòu)建的一個(gè)組合活動(dòng)集合進(jìn)行等價(jià)變換,得到該組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,然后將得到的全部云計(jì)算映射集合分別轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
[0040]其中,若步驟32中構(gòu)建成至少兩個(gè)組合活動(dòng)集合,則對(duì)每個(gè)所述組合活動(dòng)集合分別進(jìn)行等價(jià)變換,得到每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,然后從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合,并將選擇出的云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
[0041]具體地,可以基于動(dòng)態(tài)規(guī)劃算法從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合。首先確定每個(gè)云計(jì)算映射集合對(duì)應(yīng)的執(zhí)行代價(jià),然后根據(jù)確定出的執(zhí)行代價(jià),選擇出滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合。其中,代價(jià)是組成ETL工作流的基本活動(dòng)單元的數(shù)據(jù)量的大小。執(zhí)行代價(jià)是指處理一個(gè)基本活動(dòng)單元所需要的資源開(kāi)銷(xiāo)。
[0042]具體地,對(duì)每個(gè)組合活動(dòng)集合分別進(jìn)行等價(jià)變換,包括:將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換。將ETL工作流中的基本活動(dòng)單元進(jìn)行不同方式的等價(jià)變換,也就是說(shuō),對(duì)于待執(zhí)行的ETL工作流,通過(guò)等價(jià)變換,能夠確定該ETL工作流全部可能的處理方式,然后再所有的處理方式中,尋找處理代價(jià)最優(yōu)的方式映射到云計(jì)算環(huán)境中。即將基本活動(dòng)單元進(jìn)行等價(jià)變換之后形成不同的狀態(tài),由不同的狀態(tài)構(gòu)成狀態(tài)空間,此步驟也相當(dāng)于狀態(tài)空間的構(gòu)建。狀態(tài)空間的構(gòu)建,是指將ETL流程圖按照預(yù)設(shè)的關(guān)系,通過(guò)等價(jià)變換完成狀態(tài)的轉(zhuǎn)換,構(gòu)成狀態(tài)空間。
[0043]其中,ETL流程圖(ETLG)是指ETL工作流可以看作是一個(gè)有向無(wú)環(huán)圖G。G中節(jié)點(diǎn)表示基本活動(dòng)單元EA,G中的邊表示節(jié)點(diǎn)之間的關(guān)系PR。即ETLG (V, E),V=EA, E=PR0
[0044]關(guān)系(PR):PR表示提供(輸入輸出)關(guān)系,即一條由基本活動(dòng)單元EAl射出并射入基本活動(dòng)單元EA2的邊,代表基本活動(dòng)單元EA2從基本活動(dòng)單元EAl處接收數(shù)據(jù)并進(jìn)行下一步的處理。
[0045]狀態(tài)(State):表示一個(gè)ETLG。若ETLG通過(guò)等價(jià)變換后得到ETLG1,則ETLG與ETLGl都稱(chēng)為該ETL工作流圖的狀態(tài),而一個(gè)狀態(tài)State的代價(jià)為:
C(State) = ^dC(EAl)iEAi e EA
O
[0046]狀態(tài)轉(zhuǎn)換:是用于通過(guò)一個(gè)ETLG產(chǎn)生新的等價(jià)的ETLG。
[0047]具體地,對(duì)每個(gè)組合活動(dòng)集合分別進(jìn)行等價(jià)變換,包括:將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換。其中,將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換,變換方式可以但不限于包括以下三種:
[0048]第一種:將基本活動(dòng)單元按照交換的方式進(jìn)行等價(jià)變換:若至少兩個(gè)基本活動(dòng)單元?dú)w屬于同一個(gè)組合活動(dòng)集合,且所述基本活動(dòng)單元表征的是同一數(shù)據(jù)源,且交換前的基本活動(dòng)單元和執(zhí)行交換后的基本活動(dòng)單元的輸出結(jié)果相同,則確定至少兩個(gè)基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將所述基本活動(dòng)單元的執(zhí)行順序進(jìn)行交換。即:SWAP (交換)是指交換ETLG中兩個(gè)單輸入基本活動(dòng)單元EA的執(zhí)行順序,如圖5a所示,兩個(gè)基本活動(dòng)單元EA, EA1,EA2能夠進(jìn)行交換操作必須滿(mǎn)足以下條件:
[0049]a.EA1, EA2 e CEAi,即EA1, EA2在同一個(gè)組合活動(dòng)集合中,且操作的是同一數(shù)據(jù)源;
[0050]b.MSl=Otttpuif^m2 =蘭爐《^1(*觀奶£4,£^ RS1 = RS2,即 EA1, EA2 交換前后輸出相同;
[0051]第二種:將基本活動(dòng)單元按照合并的方式進(jìn)行等價(jià)變換:若至少兩個(gè)基本活動(dòng)單元?dú)w屬于同一個(gè)組合活動(dòng)集合,且所述基本活動(dòng)單元之間滿(mǎn)足順序的處理規(guī)則,則確定至少兩個(gè)基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將在不改變執(zhí)行順序的情況下,將所述基本活動(dòng)單元執(zhí)行合并。即MER (合并),時(shí)在不改變基本活動(dòng)單元在ETL工作流中執(zhí)行順序的情況下將在同一組合活動(dòng)集合中的多個(gè)線(xiàn)性相關(guān)的基本活動(dòng)單元EA的按照規(guī)則進(jìn)行合并,如圖5b所示,能夠進(jìn)行合并操作的多個(gè)EA必須滿(mǎn)足以下條件:
[0052]EA1, EA2,...,EA111 e CEAi,即合并前的基本活動(dòng)單元EA1, EA2,..., EAm屬于同一個(gè)組合活動(dòng)集合CEA。
[0053]第三種:將基本活 動(dòng)單元按照復(fù)制的方式進(jìn)行等價(jià)變換,包括:
[0054]若一個(gè)基本活動(dòng)單元能夠同時(shí)歸屬于至少兩個(gè)組合活動(dòng)集合,則確定該基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將所述基本活動(dòng)單元復(fù)制到至少兩個(gè)能夠同時(shí)被執(zhí)行的組合活動(dòng)集合中。即:復(fù)制是將一個(gè)基本活動(dòng)單元EAi復(fù)制成多個(gè)相同的EA,然后分別分配在能夠同時(shí)被執(zhí)行的不同的組合活動(dòng)集合中。例如,如果兩個(gè)組合活動(dòng)集合在ETL工作流執(zhí)行過(guò)程中,可以同時(shí)被執(zhí)行,則這兩個(gè)組合活動(dòng)集合可以稱(chēng)之為并行處理流程,也可以稱(chēng)之為ETL工作流執(zhí)行過(guò)程中的并行流程。如圖5c所示,一個(gè)EA能夠進(jìn)行復(fù)制操作必須滿(mǎn)足以下條件:
[0055]fnPutL l e ollfPllfn,nulci,即基本活動(dòng)單元EA在State中并行流程之后,且EA
I
中處理的屬性來(lái)源于在它之前的并行活動(dòng)分支中。具體地,如圖5c所示,假設(shè)基本活動(dòng)單元EAl和EA2在具體ETL執(zhí)行過(guò)程中,分屬于并發(fā)執(zhí)行的處理流程,執(zhí)行之后得到的輸出將經(jīng)過(guò)EA3處理,EA3的輸出將經(jīng)過(guò)EA4處理。由于EA4滿(mǎn)足復(fù)制條件,因此,可將其分別復(fù)制到EAl和EA2之后來(lái)執(zhí)行。
[0056]一種較佳地實(shí)現(xiàn)方式,本發(fā)明實(shí)施例一這里提出的技術(shù)方案中,可以采用下述方式構(gòu)建狀態(tài)空間:其中,變換函數(shù)F (State,f)表示對(duì)ETLG的一次轉(zhuǎn)換操作,參數(shù)State為要進(jìn)行變換的ETLG,f為變換操作,f = {SWAP, DIS, MER}(交換、分解、合并)。
[0057]等價(jià)狀態(tài):一個(gè)Statel經(jīng)過(guò)一系列變化后得到一個(gè)新的State2,若Statel和State2使用相同的輸入能夠得到相同的輸出,即:
[0058]State2 = F (State1, f),[0059]Outputdata1 = State1 (inputdata),
[0060]outputdata2 = State2 (inputdata),
[0061]Outputdata1 = Outputdata2
[0062]對(duì)于每個(gè)狀態(tài)空間,其包含的組合活動(dòng)集合CEA數(shù)目是相同的,這可由組合活動(dòng)集合CEA的劃分方式來(lái)推斷,即每個(gè)組合活動(dòng)集合CEA的末端必包含一個(gè)產(chǎn)生活動(dòng),由于等價(jià)變換不改變產(chǎn)生活動(dòng),則每個(gè)狀態(tài)空間包含相同的組合活動(dòng)集合CEA數(shù)目。
[0063]狀態(tài)空間(Statespace): Statespace = (State0, F (Statei, f) I ^ i ^ n, State1=F(State。,f)}即由初始狀態(tài)State。開(kāi)始進(jìn)行變換得到的所有等價(jià)State的集合。
[0064]狀態(tài)選擇:從由初始狀態(tài)State。開(kāi)始進(jìn)行變換得到的Statespace中找到滿(mǎn)足預(yù)設(shè)條件的Statemin
[0065]C (Statemin) = Min {C (Statei) O ^ i ^ n, Statei e Statespace}
[0066]本發(fā)明實(shí)施例一這里提出的技術(shù)方案中,ETL工作流的優(yōu)化的原則是保證狀態(tài)的開(kāi)銷(xiāo)最小這個(gè)全局最優(yōu),而全局最優(yōu)原則可將其轉(zhuǎn)化為組合活動(dòng)集合CEA中處理開(kāi)銷(xiāo)最少的局部最優(yōu)原則,所以,C(Statefflin)問(wèn)題可以劃分成規(guī)模更小的問(wèn)題,基于比,本發(fā)明實(shí)施例這里提出的技術(shù)方案,可以采用動(dòng)態(tài)規(guī)劃的方法來(lái)獲取C(Statemin)。即基于動(dòng)態(tài)規(guī)劃算法從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合。
[0067]一種較佳地實(shí)現(xiàn)方式,基于動(dòng)態(tài)規(guī)劃算法從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合,可以采用下述編程思想:
[0068]輸入:初始狀態(tài)ETLG
[0069]輸出:最優(yōu)狀態(tài)Statemin
[0070]具體過(guò)程為:
[0071]步驟一:將ETLG按照組合活動(dòng)集合CEA的構(gòu)建分方法進(jìn)行基本活動(dòng)單元的分組,形成一個(gè)包含多個(gè)組合活動(dòng)集合CEA的多層次流程,并對(duì)層次結(jié)構(gòu)由包含關(guān)系進(jìn)行編號(hào),且對(duì)每層中包含的組合活動(dòng)按照其執(zhí)行的先后順序進(jìn)行編號(hào)。
[0072]步驟二:對(duì)每個(gè)CEA中滿(mǎn)足變換條件的基本活動(dòng)單元EA進(jìn)行變換,形成一個(gè)新的CEA’,則該CEA’構(gòu)成一個(gè)新的狀態(tài)Statenew中的一個(gè)活動(dòng)組合,且CEA’和CEA可認(rèn)為是不同狀態(tài)中的同一階段。
[0073]步驟三:獲取所有可能的狀態(tài)集合(
【權(quán)利要求】
1.一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法,其特征在于,包括: 針對(duì)一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合; 確定每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼; 將生成的可執(zhí)行代碼加載到云計(jì)算環(huán)境中執(zhí)行。
2.如權(quán)利要求1所述的方法,其特征在于,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成一個(gè)組合活動(dòng)集合時(shí),確定每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,包括: 將構(gòu)建的組合活動(dòng)集合作為云計(jì)算映射集合; 所述將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼,包括: 將全部云計(jì)算映射集合分別轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
3.如權(quán)利要求1所述的方法,其特征在于,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少兩個(gè)組合活動(dòng)集合時(shí),確定每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,包括: 對(duì)每個(gè)所述組合活動(dòng)集合分別進(jìn)行等價(jià)變換,得到每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合; 所述將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼,包括: 從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合,并將選擇出的云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
4.如權(quán)利要求3所述的方法,其特征在于,從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合,包括: 基于動(dòng)態(tài)規(guī)劃算法從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射
口 O
5.如權(quán)利要求4所述的方法,其特征在于,從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合,包括: 確定每個(gè)云計(jì)算映射集合對(duì)應(yīng)的執(zhí)行代價(jià); 根據(jù)確定出的執(zhí)行代價(jià),選擇出滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合。
6.如權(quán)利要求3所述的方法,其特征在于,對(duì)每個(gè)所述組合活動(dòng)集合分別進(jìn)行等價(jià)變換,包括: 將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換。
7.如權(quán)利要求6所述的方法,其特征在于,將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換,包括: 若至少兩個(gè)基本活動(dòng)單元?dú)w屬于同一個(gè)組合活動(dòng)集合,且所述基本活動(dòng)單元表征的是同一數(shù)據(jù)源,且交換前的基本活動(dòng)單元和執(zhí)行交換后的基本活動(dòng)單元的輸出結(jié)果相同,則確定至少兩個(gè)基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將所述基本活動(dòng)單元的執(zhí)行順序進(jìn)行交換。
8.如權(quán)利要求6所述的方法,其特征在于,將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換,包括: 若至少兩個(gè)基本活動(dòng)單元?dú)w屬于同一個(gè)組合活動(dòng)集合,且所述基本活動(dòng)單元之間滿(mǎn)足線(xiàn)性相關(guān)規(guī)則,則確定至少兩個(gè)基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將在不改變執(zhí)行順序的情況下,將所述基本活動(dòng)單元執(zhí)行合并。
9.如權(quán)利要求6所述的方法,其特征在于,將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換,包括: 若一個(gè)基本活動(dòng)單元能夠同時(shí)歸屬于至少兩個(gè)組合活動(dòng)集合,則確定該基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將所述基本活動(dòng)單元復(fù)制到至少兩個(gè)能夠同步執(zhí)行的組合活動(dòng)集合中。
10.如權(quán)利要求1~9任一所述的方法,其特征在于,所述將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合,包括: 通過(guò)分類(lèi)處理將組成該ETL工作流的基本活動(dòng)數(shù)據(jù)劃分為功能活動(dòng)集合和產(chǎn)生活動(dòng)集合; 將功能活動(dòng)集合包含的基本活動(dòng)單元和產(chǎn)生活動(dòng)集合中包含的基本活動(dòng)單元進(jìn)行組合,構(gòu)建成至少一個(gè)組合活動(dòng)集合,其中,每個(gè)組合活動(dòng)集合中包含至少一個(gè)功能活動(dòng)集合中的基本活動(dòng)單元,且包含一個(gè)產(chǎn)生活動(dòng)集合中的基本活動(dòng)單元,且產(chǎn)生活動(dòng)集合中的基本活動(dòng)單元在該組成活動(dòng)集合的尾端。
11.一種數(shù)據(jù)抽取、轉(zhuǎn) 換和加載ETL的執(zhí)行裝置,其特征在于,包括: 組合活動(dòng)集合構(gòu)建單元,用于針對(duì)一個(gè)ETL工作流,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少一個(gè)組合活動(dòng)集合; 可執(zhí)行代碼確定單元,用于確定組合活動(dòng)集合構(gòu)建單元構(gòu)建的每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合,并將確定的至少一個(gè)云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼; 加載單元,用于將可執(zhí)行代碼確定單元生成的可執(zhí)行代碼加載到云計(jì)算環(huán)境中執(zhí)行。
12.如權(quán)利要求11所述的裝置,其特征在于,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成一個(gè)組合活動(dòng)集合時(shí),所述可執(zhí)行代碼確定單元,具體用于將構(gòu)建的組合活動(dòng)集合作為云計(jì)算映射集合;將全部云計(jì)算映射集合分別轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
13.如權(quán)利要求11所述的裝置,其特征在于,將組成該ETL工作流的基本活動(dòng)單元構(gòu)建成至少兩個(gè)組合活動(dòng)集合時(shí),所述可執(zhí)行代碼確定單元,具體用于對(duì)每個(gè)所述組合活動(dòng)集合分別進(jìn)行等價(jià)變換,得到每個(gè)組合活動(dòng)集合對(duì)應(yīng)的云計(jì)算映射集合;從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合,并將選擇出的云計(jì)算映射集合轉(zhuǎn)換為與云計(jì)算環(huán)境匹配的可執(zhí)行代碼。
14.如權(quán)利要求13所述的裝置,其特征在于,所述可執(zhí)行代碼確定單元,具體用于基于動(dòng)態(tài)規(guī)劃算法從確定的所有云計(jì)算映射集合中選擇滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合。
15.如權(quán)利要求14所述的裝置,其特征在于,所述可執(zhí)行代碼確定單元,具體用于確定每個(gè)云計(jì)算映射集合對(duì)應(yīng)的執(zhí)行代價(jià);根據(jù)確定出的執(zhí)行代價(jià),選擇出滿(mǎn)足預(yù)設(shè)條件的云計(jì)算映射集合。
16.如權(quán)利要求13所述的裝置,其特征在于,所述可執(zhí)行代碼確定單元,具體用于將每個(gè)組合活動(dòng)集合中滿(mǎn)足至少一個(gè)等價(jià)變換條件的基本活動(dòng)單元,按照滿(mǎn)足的等價(jià)變換條件進(jìn)行等價(jià)變換。
17.如權(quán)利要求16所述的裝置,其特征在于,所述可執(zhí)行代碼確定單元,具體用于若至少兩個(gè)基本活動(dòng)單元?dú)w屬于同一個(gè)組合活動(dòng)集合,且所述基本活動(dòng)單元表征的是同一數(shù)據(jù)源,且交換前的基本活動(dòng)單元和執(zhí)行交換后的基本活動(dòng)單元的輸出結(jié)果相同,則確定至少兩個(gè)基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將所述基本活動(dòng)單元的執(zhí)行順序進(jìn)行交換。
18.如權(quán)利要求16所述的裝置,其特征在于,所述可執(zhí)行代碼確定單元,具體用于若至少兩個(gè)基本活動(dòng)單元?dú)w屬于同一個(gè)組合活動(dòng)集合,且所述基本活動(dòng)單元之間滿(mǎn)足線(xiàn)性相關(guān)規(guī)則,則確定至少兩個(gè)基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將在不改變執(zhí)行順序的情況下,將所述基本活動(dòng)單元執(zhí)行合并。
19.如權(quán)利要求16所述的裝置,其特征在于,所述可執(zhí)行代碼確定單元,具體用于若一個(gè)基本活動(dòng)單元能夠同時(shí)歸屬于至少兩個(gè)組合活動(dòng)集合,則確定該基本活動(dòng)單元滿(mǎn)足等價(jià)變換條件,將所述基本活動(dòng)單元復(fù)制到至少兩個(gè)能夠同步執(zhí)行的組合活動(dòng)集合中。
20.如權(quán)利要求11~19任一所述的裝置,其特征在于,所述組合活動(dòng)集合構(gòu)建單元,具體用于通過(guò)分類(lèi)處理將組成該ETL工作流的基本活動(dòng)數(shù)據(jù)劃分為功能活動(dòng)集合和產(chǎn)生活動(dòng)集合;將功能活動(dòng)集合包含的基本活動(dòng)單元和產(chǎn)生活動(dòng)集合中包含的基本活動(dòng)單元進(jìn)行組合,構(gòu)建成至少一個(gè)組合活動(dòng)集合,其中,每個(gè)組合活動(dòng)集合中包含至少一個(gè)功能活動(dòng)集合中的基本活動(dòng)單元,且包含一個(gè)產(chǎn)生活動(dòng)集合中的基本活動(dòng)單元,且產(chǎn)生活動(dòng)集合中的基本活動(dòng)單元在該組`成活動(dòng)集合的尾端。
【文檔編號(hào)】G06F9/50GK103488537SQ201210196635
【公開(kāi)日】2014年1月1日 申請(qǐng)日期:2012年6月14日 優(yōu)先權(quán)日:2012年6月14日
【發(fā)明者】伍顯峰, 蔡俊, 祝希路, 李少年 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)湖南有限公司