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