一種etl流程執(zhí)行系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種ETL流程執(zhí)行系統(tǒng)及方法,屬于數(shù)據(jù)處理【技術(shù)領(lǐng)域】。本發(fā)明首先監(jiān)控ETL流程啟動(dòng)事件,當(dāng)出現(xiàn)ETL流程啟動(dòng)事件時(shí),向ETL流程發(fā)送通知消息,啟動(dòng)ETL流程;ETL流程執(zhí)行裝置確定數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)確定數(shù)據(jù)源所在位置,打開數(shù)據(jù)源,執(zhí)行ETL流程,將流程執(zhí)行結(jié)果寫入目標(biāo)數(shù)據(jù)源中,直到所有數(shù)據(jù)源被執(zhí)行完畢。本發(fā)明通過增加執(zhí)行策略裝置,使ETL流程運(yùn)行時(shí)間點(diǎn)可以根據(jù)現(xiàn)場(chǎng)要求靈活確定,大大增加了ETL流程執(zhí)行系統(tǒng)的適用范圍。通過增加數(shù)據(jù)容器裝置,實(shí)現(xiàn)了在運(yùn)行時(shí)刻決定數(shù)據(jù)源位置的功能,使ETL流程執(zhí)行系統(tǒng)不再局限于針對(duì)固定數(shù)據(jù)源的處理,靈活性大大提升。
【專利說明】一種ETL流程執(zhí)行系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體涉及一種ETL流程執(zhí)行系統(tǒng)及方法,尤其適用于數(shù)據(jù)挖掘領(lǐng)域中。
【背景技術(shù)】
[0002]ETL (Extraction-Transformation-Loading,數(shù)據(jù)提取、轉(zhuǎn)換和加載)負(fù)責(zé)將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時(shí)中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。ETL抽取、處理、加載數(shù)據(jù)的過程通常由專門的ETL軟件來完成。ETL軟件通常提供若干種數(shù)據(jù)源對(duì)象,以支持不同種類的數(shù)據(jù)源格式,并提供若干種不同類型的數(shù)據(jù)處理單元,利用這些數(shù)據(jù)處理單元的任意組合,滿足用戶對(duì)數(shù)據(jù)的各種轉(zhuǎn)換、處理需求。因此,利用ETL軟件可以比較靈活的實(shí)現(xiàn)數(shù)據(jù)的各種格式轉(zhuǎn)換及數(shù)據(jù)處理任務(wù),例如增減字段、計(jì)算字段數(shù)值、聯(lián)合表、記錄過濾等。
[0003]但是在實(shí)際項(xiàng)目應(yīng)用中,僅依靠數(shù)據(jù)處理單元的任意組合來滿足項(xiàng)目的各種數(shù)據(jù)處理需求,但仍存在一定局限性。其表現(xiàn)在以下幾個(gè)方面:
[0004](I)要處理的數(shù)據(jù)來源靈活,并非事先固定,很可能由實(shí)時(shí)確定的外界條件來確定數(shù)據(jù)源的位置及具體格式;
[0005](2)要執(zhí)行ETL過程的條件不固定,其同樣可能是動(dòng)態(tài)確定的。
[0006]傳統(tǒng)的ETL軟件,其通常提供以下對(duì)象實(shí)現(xiàn)數(shù)據(jù)的ETL過程:
[0007]數(shù)據(jù)源對(duì)象:ETL軟件對(duì)于每一種支持的數(shù)據(jù)格式,均實(shí)現(xiàn)一個(gè)數(shù)據(jù)源對(duì)象,該對(duì)象負(fù)責(zé)將數(shù)據(jù)以記錄的方式從原始數(shù)據(jù)格式中讀取出來,并轉(zhuǎn)化為統(tǒng)一的數(shù)據(jù)模型提供給數(shù)據(jù)處理單元。如果支持對(duì)該格式的生成功能,數(shù)據(jù)源對(duì)象還負(fù)責(zé)將數(shù)據(jù)處理單元產(chǎn)生的記錄按照要求的格式寫入到目標(biāo)數(shù)據(jù)源中。
[0008]數(shù)據(jù)處理單元(處理器)=ETL軟件對(duì)于每一種數(shù)據(jù)處理功能,均提供一個(gè)數(shù)據(jù)處理單元實(shí)現(xiàn)該功能。數(shù)據(jù)處理單元負(fù)責(zé)接收數(shù)據(jù)源或者另一個(gè)數(shù)據(jù)處理單元輸出的記錄,對(duì)其進(jìn)行變換處理,然后再將處理結(jié)果以記錄的形式輸出出來。
[0009]ETL的數(shù)據(jù)處理單元是可以任意組合并不斷擴(kuò)充的,即前一個(gè)處理單元輸出的記錄可以作為后一個(gè)處理單元的輸入記錄,因此ETL軟件在數(shù)據(jù)處理方面具有較大的靈活性。
[0010]ETL軟件的這種實(shí)現(xiàn)方式,可以滿足一般的數(shù)據(jù)處理需求,但是當(dāng)其以一個(gè)工具形式應(yīng)用在實(shí)際項(xiàng)目中時(shí),則存在一定局限性,限制了 ETL軟件的應(yīng)用范圍。其滿足不了數(shù)據(jù)處理的如下需求:
[0011](I)動(dòng)態(tài)確定的數(shù)據(jù)源:當(dāng)數(shù)據(jù)源不是事先固定,而是動(dòng)態(tài)確定的。例如,在實(shí)際應(yīng)用環(huán)境下,可能需要通過讀取動(dòng)態(tài)生成的配置文件確定數(shù)據(jù)源的位置。
[0012](2)動(dòng)態(tài)確定的執(zhí)行時(shí)間點(diǎn):此時(shí)ETL數(shù)據(jù)處理不是由手動(dòng)觸發(fā),也不是在固定的時(shí)間點(diǎn)觸發(fā),而是由外部條件動(dòng)態(tài)確定。例如,在實(shí)際應(yīng)用環(huán)境下,可能需要通過判斷一個(gè)共享文件夾中數(shù)據(jù)的修改時(shí)間變化,確定ETL過程的啟動(dòng)。
[0013]此外,以上這種動(dòng)態(tài)確定的具體規(guī)則又是靈活多樣的,在具體的數(shù)據(jù)處理需求中很難以一套固定化的模式實(shí)現(xiàn),因此一個(gè)傳統(tǒng)的ETL工具并不適用于以上的數(shù)據(jù)處理情景。
【發(fā)明內(nèi)容】
[0014]針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明所要解決的技術(shù)問題是提供一種靈活性強(qiáng)、適用范圍廣的ETL流程執(zhí)行系統(tǒng)及方法。
[0015]為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案如下:
[0016]一種ETL流程執(zhí)行系統(tǒng),包括ETL流程執(zhí)行裝置;若干用于監(jiān)控ETL流程執(zhí)行裝置的啟動(dòng)事件,當(dāng)出現(xiàn)啟動(dòng)事件時(shí)以消息的方式通知ETL流程執(zhí)行裝置啟動(dòng)的執(zhí)行策略裝置。
[0017]如上所述的ETL流程執(zhí)行系統(tǒng),還包括用于顯示所述系統(tǒng)中所有執(zhí)行策略裝置的顯示裝置;用于根據(jù)所述顯示裝置的顯示結(jié)果選擇執(zhí)行策略裝置的選擇裝置。
[0018]如上所述的ETL流程執(zhí)行系統(tǒng),其中,ETL流程執(zhí)行裝置包括用于接收?qǐng)?zhí)行策略裝置發(fā)送的通知消息的窗口單元。
[0019]如上所述的ETL流程執(zhí)行系統(tǒng),其中,執(zhí)行策略裝置包括以下單元:
[0020]第一信息提供單元,用于向顯示裝置提供該執(zhí)行策略裝置的基本信息。
[0021]初始化單元,用于確定ETL流程執(zhí)行裝置接收消息通知的窗口句柄,記錄該值,當(dāng)發(fā)現(xiàn)需要觸發(fā)ETL流程時(shí),向該窗口發(fā)送一個(gè)通知消息;同時(shí)用于確定ETL流程執(zhí)行裝置接收的消息ID,記錄該值,當(dāng)需要觸發(fā)ETL流程時(shí),向ETL窗口發(fā)送ID等于此值的一個(gè)通知消息;
[0022]監(jiān)控單元,用于按照設(shè)定要求監(jiān)控狀態(tài),確定何時(shí)啟動(dòng)ETL流程,當(dāng)狀態(tài)滿足條件時(shí),通知ETL流程執(zhí)行裝置啟動(dòng)流程;
[0023]ETL流程執(zhí)行結(jié)束通知單元,用于在ETL流程執(zhí)行結(jié)束后,通知ETL流程執(zhí)行裝置執(zhí)行完成;
[0024]釋放單元,用于通知監(jiān)控單元結(jié)束監(jiān)控。
[0025]如上所述的ETL流程執(zhí)行系統(tǒng),還包括若干用于向ETL流程執(zhí)行裝置提供待處理數(shù)據(jù)源參數(shù)和目標(biāo)數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)和目標(biāo)數(shù)據(jù)源參數(shù)能夠確定待處理數(shù)據(jù)源所在位置及目標(biāo)數(shù)據(jù)源所在位置的數(shù)據(jù)容器裝置。
[0026]如上所述的ETL流程執(zhí)行系統(tǒng),其中,顯示裝置還用于顯示系統(tǒng)中所有數(shù)據(jù)容器裝置;所述選擇裝置還用于選擇數(shù)據(jù)容器裝置。
[0027]如上所述的ETL流程執(zhí)行系統(tǒng),其中,數(shù)據(jù)容器裝置包括以下單元:
[0028]第二信息提供單元,用于向所述顯示裝置提供該數(shù)據(jù)容器裝置的基本信息;
[0029]啟動(dòng)數(shù)據(jù)源枚舉單元,用于不斷調(diào)用獲取數(shù)據(jù)源參數(shù)單元獲取數(shù)據(jù)源參數(shù);
[0030]獲取數(shù)據(jù)源參數(shù)單元,用于獲取下一個(gè)待打開的數(shù)據(jù)源參數(shù),如果獲取成功,則返回TRUE ;否則,返回FALSE ;
[0031]獲取對(duì)應(yīng)目標(biāo)數(shù)據(jù)源參數(shù)單元,用于獲取下一個(gè)待打開的目標(biāo)數(shù)據(jù)源參數(shù),如果獲取成功,則返回TRUE ;否則,返回FALSE ;[0032]結(jié)束數(shù)據(jù)源枚舉單元:用于結(jié)束啟動(dòng)數(shù)據(jù)源枚舉單元枚舉過程,將枚舉過程中分配的相關(guān)資源進(jìn)行釋放。
[0033]一種ETL流程執(zhí)行方法,包括以下步驟:
[0034]監(jiān)控ETL流程啟動(dòng)事件,當(dāng)出現(xiàn)ETL流程啟動(dòng)事件時(shí),向ETL流程發(fā)送通知消息,啟動(dòng)ETL流程;
[0035]ETL流程執(zhí)行裝置確定數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)確定數(shù)據(jù)源所在位置,打開數(shù)據(jù)源,執(zhí)行ETL流程,將流程執(zhí)行結(jié)果寫入目標(biāo)數(shù)據(jù)源中,直到所有數(shù)據(jù)源被執(zhí)行完畢。
[0036]如上所述的ETL流程執(zhí)行方法,其中,監(jiān)控ETL流程啟動(dòng)事件的方法為:實(shí)時(shí)監(jiān)控共享文件夾中的文件變化,所述共享文件夾中的文件由第三方應(yīng)用不定期更新;將所述共享文件夾中的文件變化作為ETL流程啟動(dòng)的事件。
[0037]如上所述的ETL流程執(zhí)行方法,其中,所述確定數(shù)據(jù)源參數(shù)的過程包括以下步驟:
[0038]選擇待執(zhí)行的數(shù)據(jù)容器裝置;
[0039]所述數(shù)據(jù)容器裝置依次讀取第三方應(yīng)用提供的數(shù)據(jù)源參數(shù)文件中的數(shù)據(jù)源參數(shù),提供給ETL流程執(zhí)行裝置。
[0040]本發(fā)明所述系統(tǒng)及方法,具有如下優(yōu)點(diǎn):
[0041 ] ( I)通過增加執(zhí)行策略裝置(插件),使ETL流程運(yùn)行時(shí)間點(diǎn)可以根據(jù)現(xiàn)場(chǎng)要求靈活確定,大大增加了 ETL流程執(zhí)行系統(tǒng)的適用范圍。
[0042](2)通過增加數(shù)據(jù)容器裝置(插件),實(shí)現(xiàn)了在運(yùn)行時(shí)刻決定數(shù)據(jù)源位置的功能,使ETL流程執(zhí)行系統(tǒng)不再局限于針對(duì)固定數(shù)據(jù)源的處理,靈活性大大提升,并且提供了動(dòng)態(tài)批量數(shù)據(jù)處理的能力。
【專利附圖】
【附圖說明】
[0043]圖1是【具體實(shí)施方式】中ETL流程執(zhí)行系統(tǒng)的結(jié)構(gòu)框圖;
[0044]圖2是【具體實(shí)施方式】中執(zhí)行策略裝置的結(jié)構(gòu)框圖;
[0045]圖3是【具體實(shí)施方式】中數(shù)據(jù)容器裝置的結(jié)構(gòu)框圖;
[0046]圖4是【具體實(shí)施方式】中ETL流程執(zhí)行方法的流程圖;
[0047]圖5是【具體實(shí)施方式】中監(jiān)控ETL流程啟動(dòng)事件方法的流程圖;
[0048]圖6是【具體實(shí)施方式】中ETL流程執(zhí)行裝置執(zhí)行過程的流程圖;
[0049]圖7是【具體實(shí)施方式】中獲取數(shù)據(jù)源參數(shù)方法的流程圖。
【具體實(shí)施方式】
[0050]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)描述。
[0051]如圖1所示,本實(shí)施方式中ETL流程執(zhí)行系統(tǒng)包括ETL流程執(zhí)行裝置1、執(zhí)行策略裝置2、顯示裝置3、選擇裝置4和數(shù)據(jù)容器裝置5。ETL流程執(zhí)行裝置I包括窗口單元11。
[0052]ETL流程執(zhí)行裝置I用于執(zhí)行ETL流程。執(zhí)行策略裝置2用于監(jiān)控ETL流程執(zhí)行裝置I的啟動(dòng)事件,以消息的方式通知ETL流程執(zhí)行裝置I啟動(dòng)。顯示裝置3用于顯示系統(tǒng)中所有執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5的基本信息,包括名稱、功能信息等。選擇裝置4用于為ETL流程執(zhí)行裝置I選擇執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5。數(shù)據(jù)容器裝置5用于向ETL流程執(zhí)行裝置I提供待處理數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)能夠確定待處理數(shù)據(jù)源所在位置。窗口單元11用于接收?qǐng)?zhí)行策略裝置2發(fā)送的通知消息。
[0053]如圖2所示,執(zhí)行策略裝置2包括第一信息提供單元21、初始化單元22、監(jiān)控單元23、ETL流程執(zhí)行結(jié)束通知單元24和釋放單元25。
[0054]第一信息提供單元21用于向顯示裝置3提供該執(zhí)行策略裝置2的基本信息。初始化單元22用于確定ETL流程執(zhí)行裝置I接收消息通知的窗口句柄,記錄該值,當(dāng)發(fā)現(xiàn)需要觸發(fā)ETL流程時(shí),向該窗口發(fā)送一個(gè)通知消息;同時(shí),用于確定ETL流程執(zhí)行裝置I接收的消息ID,記錄該值,當(dāng)需要觸發(fā)ETL流程時(shí),向ETL窗口發(fā)送ID等于此值的一個(gè)通知消息。監(jiān)控單元23用于按照設(shè)定要求監(jiān)控狀態(tài),確定何時(shí)啟動(dòng)ETL流程,當(dāng)狀態(tài)滿足條件時(shí),通知ETL流程執(zhí)行裝置I啟動(dòng)流程。ETL流程執(zhí)行結(jié)束通知單元24用于在ETL流程執(zhí)行結(jié)束后,通知ETL流程執(zhí)行裝置I執(zhí)行完成。釋放單元25用于通知監(jiān)控單元23結(jié)束監(jiān)控。
[0055]如圖3所示,數(shù)據(jù)容器裝置5包括第一信息提供單元51、啟動(dòng)數(shù)據(jù)源枚舉單元52、獲取數(shù)據(jù)源參數(shù)單元53、獲取對(duì)應(yīng)目標(biāo)數(shù)據(jù)源參數(shù)單元54和結(jié)束數(shù)據(jù)源枚舉單元55。
[0056]第一信息提供單元51用于向所述顯示裝置3提供該數(shù)據(jù)容器裝置5的基本信息。啟動(dòng)數(shù)據(jù)源枚舉單元52用于初始化數(shù)據(jù)源枚舉過程,不斷調(diào)用獲取數(shù)據(jù)源參數(shù)單元53獲取數(shù)據(jù)源參數(shù)。獲取數(shù)據(jù)源參數(shù)單元53用于獲取下一個(gè)待打開的數(shù)據(jù)源參數(shù),如果獲取成功,則返回TRUE ;否則,返回FALSE。獲取對(duì)應(yīng)目標(biāo)數(shù)據(jù)源參數(shù)單元54用于獲取下一個(gè)待打開的目標(biāo)數(shù)據(jù)源參數(shù),如果獲取成功,則返回TRUE ;否則,返回FALSE。結(jié)束數(shù)據(jù)源枚舉單元55用于結(jié)束啟動(dòng)數(shù)據(jù)源枚舉單元52枚舉過程,將枚舉過程中分配的相關(guān)資源進(jìn)行釋放。
[0057]如圖4所示,采用上述系統(tǒng)執(zhí)行ETL流程的方法包括以下步驟:
[0058](I)執(zhí)行策略裝置2監(jiān)控ETL流程啟動(dòng)事件,當(dāng)出現(xiàn)ETL流程啟動(dòng)事件時(shí),向ETL流程發(fā)送通知消息,啟動(dòng)ETL流程。
[0059]如圖5所示,所述監(jiān)控ETL流程啟動(dòng)事件的方法為:實(shí)時(shí)監(jiān)控共享文件夾中的文件變化,所述共享文件夾中的文件由第三方應(yīng)用不定期更新;將所述共享文件夾中的文件變化作為ETL流程啟動(dòng)的事件。
[0060](2)ETL流程執(zhí)行裝置I確定數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)確定數(shù)據(jù)源所在位置,打開數(shù)據(jù)源,執(zhí)行ETL流程,將流程執(zhí)行結(jié)果寫入目標(biāo)數(shù)據(jù)源中,直到所有數(shù)據(jù)源被執(zhí)行完畢。
[0061]如圖6所示,本實(shí)施方式中ETL流程執(zhí)行方法還包括選擇待執(zhí)行的數(shù)據(jù)容器裝置,所述數(shù)據(jù)容器裝置依次讀取第三方應(yīng)用提供的數(shù)據(jù)源參數(shù)文件中的數(shù)據(jù)源參數(shù),提供給ETL流程執(zhí)行裝置的步驟。具體的ETL執(zhí)行方法包括以下步驟:
[0062]①選擇裝置4根據(jù)顯示裝置3顯示的執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5的基本信息,為ETL流程執(zhí)行裝置I選擇執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5。執(zhí)行策略裝置2的基本信息由第一信息提供單元21提供。
[0063]②初始化執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5。
[0064]③監(jiān)控單元23檢測(cè)ETL流程啟動(dòng)消息,當(dāng)窗口單元11接收到ETL流程啟動(dòng)消息后,啟動(dòng)ETL流程。
[0065]④ETL流程執(zhí)行裝置I從數(shù)據(jù)容器裝置5中獲取數(shù)據(jù)源參數(shù)。
[0066]啟動(dòng)數(shù)據(jù)源枚舉單元52不斷調(diào)用獲取數(shù)據(jù)源參數(shù)單元53,獲取數(shù)據(jù)源參數(shù),提供給ETL流程執(zhí)行裝置I。
[0067]⑤打開數(shù)據(jù)源,讀取記錄并處理,將處理結(jié)果寫入目標(biāo)數(shù)據(jù)源中。
[0068]目標(biāo)數(shù)據(jù)源參數(shù)由獲取對(duì)應(yīng)目標(biāo)數(shù)據(jù)參數(shù)單元54獲取,ETL流程執(zhí)行裝置I根據(jù)目標(biāo)數(shù)據(jù)源參數(shù)獲取目標(biāo)數(shù)據(jù)源,將處理結(jié)果寫入目標(biāo)數(shù)據(jù)源中。
[0069]⑥獲取下一個(gè)數(shù)據(jù)源參數(shù),如果獲取成功,轉(zhuǎn)至步驟④;如果獲取失敗,則進(jìn)入下一步。
[0070]⑦判斷是否結(jié)束監(jiān)控。如果ETL流程執(zhí)行結(jié)束通知單元24通知結(jié)束監(jiān)控,則結(jié)束數(shù)據(jù)源枚舉單元55結(jié)束枚舉過程,釋放單元25釋放資源后結(jié)束;否則,則轉(zhuǎn)至步驟③。
[0071]本發(fā)明在具體實(shí)現(xiàn)時(shí),執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5可以制作成插件,作為ETL流程執(zhí)行系統(tǒng)的組成部分。執(zhí)行策略裝置2和數(shù)據(jù)容器裝置5包括的各單元可以制作成接口。
[0072]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種ETL流程執(zhí)行系統(tǒng),包括ETL流程執(zhí)行裝置(1),其特征在于:所述系統(tǒng)還包括若干用于監(jiān)控ETL流程執(zhí)行裝置(1)的啟動(dòng)事件,當(dāng)出現(xiàn)啟動(dòng)事件時(shí)以消息的方式通知ETL流程執(zhí)行裝置(1)啟動(dòng)的執(zhí)行策略裝置(2 )。
2.如權(quán)利要求1所述的ETL流程執(zhí)行系統(tǒng),其特征在于:所述系統(tǒng)還包括用于顯示所述系統(tǒng)中所有執(zhí)行策略裝置(2)的顯示裝置(3);用于根據(jù)所述顯示裝置(3)的顯示結(jié)果選擇執(zhí)行策略裝置(2)的選擇裝置(4)。
3.如權(quán)利要求1所述的ETL流程執(zhí)行系統(tǒng),其特征在于:所述ETL流程執(zhí)行裝置(1)包括用于接收?qǐng)?zhí)行策略裝置(2)發(fā)送的通知消息的窗口單元(11)。
4.如權(quán)利要求1所述的ETL流程執(zhí)行系統(tǒng),其特征在于:所述執(zhí)行策略裝置(2)包括以下單元:第一信息提供單元(2 1),用于向顯示裝置(3)提供該執(zhí)行策略裝置(2)的基本信息;初始化單元(22),用于確定ETL流程執(zhí)行裝置(1)接收消息通知的窗口句柄,記錄該值,當(dāng)發(fā)現(xiàn)需要觸發(fā)ETL流程時(shí),向該窗口發(fā)送一個(gè)通知消息;同時(shí)用于確定ETL流程執(zhí)行裝置(I)接收的消息ID,記錄該值,當(dāng)需要觸發(fā)ETL流程時(shí),向ETL窗口發(fā)送ID等于此值的一個(gè)通知消息; 監(jiān)控單元(23),用于按照設(shè)定要求監(jiān)控狀態(tài),確定何時(shí)啟動(dòng)ETL流程,當(dāng)狀態(tài)滿足條件時(shí),通知ETL流程執(zhí)行裝置(I)啟動(dòng)流程; ETL流程執(zhí)行結(jié)束通知單元(24),用于在ETL流程執(zhí)行結(jié)束后,通知ETL流程執(zhí)行裝置(O執(zhí)行完成; 釋放單元(25),用于通知監(jiān)控單元(23)結(jié)束監(jiān)控。
5.如權(quán)利要求1~4中任一項(xiàng)所述的ETL流程執(zhí)行系統(tǒng),其特征在于:所述系統(tǒng)還包括若干用于向ETL流程執(zhí)行裝置(1)提供待處理數(shù)據(jù)源參數(shù)和目標(biāo)數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)和目標(biāo)數(shù)據(jù)源參數(shù)能夠確定待處理數(shù)據(jù)源所在位置及目標(biāo)數(shù)據(jù)源所在位置的數(shù)據(jù)容器裝置(5)。
6.如權(quán)利要求5所述的ETL流程執(zhí)行系統(tǒng),其特征在于:所述顯示裝置(3)還用于顯示系統(tǒng)中所有數(shù)據(jù)容器裝置(5);所述選擇裝置(4)還用于選擇數(shù)據(jù)容器裝置(5)。
7.如權(quán)利要求5所述的ETL流程執(zhí)行系統(tǒng),其特征在于:所述數(shù)據(jù)容器裝置(5)包括以下單元: 第二信息提供單元(51),用于向所述顯示裝置(3 )提供該數(shù)據(jù)容器裝置的基本信息;啟動(dòng)數(shù)據(jù)源枚舉單元(52),用于不斷調(diào)用獲取數(shù)據(jù)源參數(shù)單元(53)獲取數(shù)據(jù)源參數(shù);獲取數(shù)據(jù)源參數(shù)單元(53),用于獲取下一個(gè)待打開的數(shù)據(jù)源參數(shù),如果獲取成功,則返回TRUE ;否則,返回FALSE ; 獲取對(duì)應(yīng)目標(biāo)數(shù)據(jù)源參數(shù)單元(54),用于獲取下一個(gè)待打開的目標(biāo)數(shù)據(jù)源參數(shù),如果獲取成功,則返回TRUE ;否則,返回FALSE ; 結(jié)束數(shù)據(jù)源枚舉單元(55):用于結(jié)束啟動(dòng)數(shù)據(jù)源枚舉單元(52)枚舉過程,將枚舉過程中分配的相關(guān)資源進(jìn)行釋放。
8.—種ETL流程執(zhí)行方法,其特征在于,包括以下步驟: 監(jiān)控ETL流程啟動(dòng)事件,當(dāng)出現(xiàn)ETL流程啟動(dòng)事件時(shí),向ETL流程發(fā)送通知消息,啟動(dòng)ETL流程;ETL流程執(zhí)行裝置確定數(shù)據(jù)源參數(shù),根據(jù)所述數(shù)據(jù)源參數(shù)確定數(shù)據(jù)源所在位置,打開數(shù)據(jù)源,執(zhí)行ETL流程,將流程執(zhí)行結(jié)果寫入目標(biāo)數(shù)據(jù)源中,直到所有數(shù)據(jù)源被執(zhí)行完畢。
9.如權(quán)利要求8所述的ETL流程執(zhí)行方法,其特征在于,所述監(jiān)控ETL流程啟動(dòng)事件的方法為:實(shí)時(shí)監(jiān)控共享文件夾中的文件變化,所述共享文件夾中的文件由第三方應(yīng)用不定期更新;將所述共享文件夾中的文件變化作為ETL流程啟動(dòng)的事件。
10.如權(quán)利要求8或9所述的ETL流程執(zhí)行方法,其特征在于,所述確定數(shù)據(jù)源參數(shù)的過程包括以下步驟: 選擇待執(zhí)行的數(shù)據(jù)容器裝置; 所述數(shù)據(jù)容器裝置依次讀取第三方應(yīng)用提供的數(shù)據(jù)源參數(shù)文件中的數(shù)據(jù)源參數(shù),提供給ETL流程 執(zhí)行裝置。
【文檔編號(hào)】G06F9/44GK103902268SQ201210578925
【公開日】2014年7月2日 申請(qǐng)日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】周大良, 李欣, 王生, 李強(qiáng), 曹五豐 申請(qǐng)人:方正國際軟件(北京)有限公司