两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

數(shù)據(jù)抽取、轉(zhuǎn)換和加載的執(zhí)行方法和裝置的制作方法

文檔序號:6467634閱讀:248來源:國知局

專利名稱::數(shù)據(jù)抽取、轉(zhuǎn)換和加載的執(zhí)行方法和裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及通信
技術(shù)領(lǐng)域
,尤其涉及一種ETL(ExtractionTransformationLoading,數(shù)據(jù)抽取、轉(zhuǎn)換和加載)的執(zhí)行方法和裝置。
背景技術(shù)
:ETL是構(gòu)建數(shù)據(jù)倉庫中極其重要的一個部分。其按照預(yù)先設(shè)計好的規(guī)則,提供對不同數(shù)據(jù)源的數(shù)據(jù)進行抽取,轉(zhuǎn)換,清洗的功能,集成和凈化來自于多個不同系統(tǒng)的數(shù)據(jù),最后將轉(zhuǎn)換完的數(shù)據(jù)增量或全部載入目標數(shù)據(jù)庫中。ETL的處理過程示意圖如圖1所示,其從不同的異構(gòu)數(shù)據(jù)源流得到向統(tǒng)一的目標數(shù)據(jù),作為聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。執(zhí)行ETL時,需要預(yù)先配置好其上下文環(huán)境,在到達執(zhí)行時間后,開始啟動ETL過程?,F(xiàn)有技術(shù)中,對于ETL—般可分為周期性ETL和一次性ETL,在通過用戶界面或是配置文件預(yù)先配置好執(zhí)行時間后,周期性ETL根據(jù)執(zhí)行時間周期性執(zhí)行;一次性ETL根據(jù)只執(zhí)行一次,當?shù)竭_了預(yù)定的扭Z亍時間后,啟動ETL過程。現(xiàn)有技術(shù)中的ETL執(zhí)行方式存在如下缺陷對于周期性ETL,只能按照預(yù)定的時間執(zhí)行,而無法在不固定的時間點實時執(zhí)行,因此缺乏靈活性。對于一次性ETL,在預(yù)定時間執(zhí)行一次后,后續(xù)不會再執(zhí)行,因此不能根據(jù)需要多次執(zhí)行。
發(fā)明內(nèi)容本發(fā)明提供一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載的執(zhí)行方法和裝置,用于在ETL執(zhí)行中同時實現(xiàn)周期性ETL和一次性ETL。本發(fā)明提供一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法,包括滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間;將所述當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列;根據(jù)所述ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。其中,所述ETL任務(wù)的執(zhí)行觸發(fā)條件包括手動觸發(fā)、或事件觸發(fā)。其中,所述將當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列包括判斷所述ETL執(zhí)行隊列是否為空,為空時則將所述當前時間作為所述ETL任務(wù)的執(zhí)行時間插入到所述ETL執(zhí)行隊列的隊首;所述ETL執(zhí)行隊列不為空時,根據(jù)所述當前時間、以及所述ETL執(zhí)行隊列中的已有時間,按照時間先后順序?qū)⑺霎斍皶r間作為所述ETL任務(wù)的執(zhí)行時間插入到所述ETL執(zhí)行隊列中的對應(yīng)位置。其中,所述根據(jù)ETL執(zhí)行隊列執(zhí)行ETL任務(wù)包括獲取所述ETL執(zhí)行隊列中具有最先時間順序的時間;當前時間等于或晚于所述具有最先時間順序的時間時,獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境;根據(jù)所述獲取到的上下文環(huán)境執(zhí)行ETL任務(wù)。其中,所述根據(jù)獲取到的上下文環(huán)境執(zhí)行ETL后,還包括ETL執(zhí)行完畢后,保存本次ETL執(zhí)行的上下文環(huán)境;其中,所述滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲^^當前時間前,還包括設(shè)置ETL任務(wù),所述ETL任務(wù)中包括至少一個任務(wù)保存項,所述每一任務(wù)保存項中包括上下文環(huán)境;對各所述任務(wù)保存項的上下文環(huán)境綜合后得到所述ETL任務(wù)執(zhí)行的上下文環(huán)境。其中,所述ETL任務(wù)中包括的每一個任務(wù)保存項,均屬于預(yù)先設(shè)置的系統(tǒng)保存項;對于所述ETL任務(wù)中包括的不屬于系統(tǒng)保存項的任務(wù)保存項進行刪除。其中,所述ETL執(zhí)行的上下文環(huán)境至少包括本次執(zhí)行時間、本次抽取到的原始數(shù)據(jù)的ID、本次加載目的數(shù)據(jù)的ID中的一種或多種。本發(fā)明提供一種ETL的執(zhí)行裝置,包括時間獲取單元,用于在判斷滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間;隊列維護單元,用于將所述時間獲取單元獲取的當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列;隊列執(zhí)行單元,用于根據(jù)所述隊列維護單元維護的ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。其中,所述隊列維護單元包括第一判斷子單元,用于判斷所述ETL執(zhí)行隊列是否為空;時間插入子單元,用于在所述第一判斷子單元判斷所述ETL執(zhí)行隊列為空時,將所述當前時間插入到所述ETL執(zhí)行隊列的隊首;在所述第一判斷子單元判斷所述ETL執(zhí)行隊列不為空時,根據(jù)所述當前時間、以及所述ETL執(zhí)行隊列中的已有時間,按照時間先后順序?qū)⑺霎斍皶r間作為所述ETL任務(wù)的執(zhí)行時間插入到所述ETL執(zhí)行隊列中的對應(yīng)位置。其中,所述隊列執(zhí)行單元包括時間獲取子單元,用于獲取所述ETL執(zhí)行隊列中具有最先時間順序的時間;上下文環(huán)境獲取子單元,用于在所述時間獲取子單元獲取的當前時間等于或晚于所述具有最先時間順序的時間時,獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境;執(zhí)行子單元,用于根據(jù)所述上下文環(huán)境獲取子單元獲取到的上下文環(huán)境執(zhí)行ETL任務(wù)。其中,所述隊列執(zhí)行單元還包括上下文環(huán)境存儲子單元,用于在所述執(zhí)行子單元的ETL執(zhí)行完畢后,保存本次ETL執(zhí)行的上下文環(huán)境;所述隊列維護單元還包括時間刪除子單元,用于在所述隊列執(zhí)行單元的ETL執(zhí)行完畢后,將所述具有最先時間順序的時間從所述ETL執(zhí)行隊列中刪除。其中,所述執(zhí)行裝置還包括ETL任務(wù)設(shè)置單元,用于設(shè)置ETL任務(wù),所述ETL任務(wù)中包括至少一個任務(wù)保存項,所述每一任務(wù)保存項中包括上下文環(huán)境;對各所述任務(wù)保存項的上下文環(huán)境綜合后得到所述ETL任務(wù)執(zhí)行的上下文環(huán)境。其中,還包括系統(tǒng)保存項設(shè)置單元,用于設(shè)置多個任務(wù)保存項;ETL任務(wù)檢查單元,用于檢查所述ETL任務(wù)設(shè)置單元設(shè)置的ETL任務(wù)中包括的每一個任務(wù)保存項是否屬于預(yù)先設(shè)置的系統(tǒng)保存項;對于所述ETL任務(wù)中包括的不屬于系統(tǒng)保存項的任務(wù)保存項進行刪除。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點通過使用本發(fā)明,將周期性ETL的執(zhí)行時間和一次性ETL的執(zhí)行時間統(tǒng)一通過隊列進行維護,可同時通過周期性ETL方式或一次性ETL來觸發(fā)ETL的執(zhí)行,克服了現(xiàn)有技術(shù)中只能單一實現(xiàn)周期性ETL或一次性ETL的缺陷,加強了ETL執(zhí)行與用戶的交互性,增加了ETL執(zhí)行的靈活性。另外,通過保存每一次ETL執(zhí)行的上下文環(huán)境(包括周期性ETL的執(zhí)行上下文環(huán)境及一次性ETL的上下文環(huán)境),使一次性ETL的執(zhí)行不會影響到周期性ETL的執(zhí)行,也不會影響ETL結(jié)果lt據(jù)的準確性。圖1是現(xiàn)有技術(shù)中ETL的處理過程示意圖2是本發(fā)明中ETL執(zhí)行方法的流程圖3是本發(fā)明中ETL觸發(fā)條件監(jiān)控方法的流程圖4是本發(fā)明中ETL執(zhí)行方法的流程圖5是本發(fā)明中ETL執(zhí)行裝置的結(jié)構(gòu)示意圖6是本發(fā)明中ETL執(zhí)行裝置的另一結(jié)構(gòu)示意圖。具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。本發(fā)明提供一種ETL的執(zhí)行方法,如圖2所示,包括步驟s201、滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間。步驟s202、將當前時間作為該ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列。步驟s203、根據(jù)ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。通過使用本發(fā)明,將周期性ETL的執(zhí)行時間和一次性ETL的執(zhí)行時間統(tǒng)一通過隊列進行維護,可同時通過周期性ETL方式或一次性ETL來觸發(fā)ETL的執(zhí)行,克服了現(xiàn)有技術(shù)中只能單一實現(xiàn)周期性ETL或一次性ETL的缺陷,加強了ETL執(zhí)行與用戶的交互性,增加了ETL執(zhí)行的靈活性。本發(fā)明的ETL執(zhí)行方法中,系統(tǒng)以ETL任務(wù)為單位執(zhí)行。為了設(shè)置ETL任務(wù),本發(fā)明中首先設(shè)置一系列需要保存的上下文環(huán)境保存項,以下稱為任務(wù)保存項。為了維護任務(wù)保存項,對每個任務(wù)保存項通過一個唯一的標識ID作為標識,并將各任務(wù)保存項的集合作為系統(tǒng)保存項。系統(tǒng)保存項中包括每個任務(wù)保存項及其對應(yīng)的ID,例如使用如表1所示的結(jié)構(gòu)維護系統(tǒng)保存項<table>tableseeoriginaldocumentpage9</column></row><table>[IDN]任務(wù)保存項N該系統(tǒng)保存項中包括了ETL系統(tǒng)所有可能的任務(wù)保存項,如果ETL系統(tǒng)需要擴展,只需要在系統(tǒng)保存項添加新的任務(wù)保存項即可。根據(jù)上述系統(tǒng)保存項中的任務(wù)保存項,即可進行ETL任務(wù)的設(shè)置。設(shè)置ETL任務(wù)時,每個ETL任務(wù)中包括至少一個任務(wù)保存項。例如,對于ETL任務(wù)A,可能包括任務(wù)保存項1、任務(wù)保存項2以及任務(wù)保存項3;對于ETL任務(wù)B,可能包括任務(wù)保存項4;對于ETL任務(wù)C,可能包括任務(wù)保存項1以及任務(wù)保存項5。由于每一任務(wù)保存項中包括上下文環(huán)境,因此對各任務(wù)保存項的上下文環(huán)境綜合后即可得到該ETL任務(wù)執(zhí)行的上下文環(huán)境,該上下文環(huán)境包括ETL執(zhí)行的時間點,本次抽取到的原始數(shù)據(jù)的ID,本次加載目的數(shù)據(jù)的ID等等在進行ETL任務(wù)的設(shè)置后,系統(tǒng)會對已設(shè)置的ETL任務(wù)中的任務(wù)保存項進行檢查。為了確保ETL任務(wù)執(zhí)行的可控性,需要確保ETL任務(wù)中包括的每一個任務(wù)保存項均屬于預(yù)先設(shè)置的系統(tǒng)保存項,即為系統(tǒng)保存項的子集;對于已設(shè)置的ETL任務(wù)中包括的不屬于系統(tǒng)保存項的任務(wù)保存項進行刪除,并通過適當?shù)姆绞?如告警、記錄日志)通知用戶?;谏鲜鯡TL任務(wù)的設(shè)置方法,本發(fā)明提供的ETL的執(zhí)行方法中,包括對ETL觸發(fā)條件的監(jiān)控進程、以及ETL的執(zhí)行進程兩部分。以下分別對這兩部分流程分別進行說明。首先對ETL觸發(fā)條件的監(jiān)控進行介紹,對ETL觸發(fā)條件進行監(jiān)控的目的在于,當需要執(zhí)行一次性ETL時,觸發(fā)ETL任務(wù)的執(zhí)行并將觸發(fā)的當前時間作為該ETL任務(wù)的執(zhí)行時間添加到ETL執(zhí)行隊列中,添加的位置由當前ETL執(zhí)行隊列中已有的內(nèi)容確定。該執(zhí)行隊列中的每個值表示不同ETL任務(wù)的執(zhí)行時間,以下的流程中,假設(shè)按照時間順序在ETL執(zhí)行隊列中維護不同的時間,時間越早在ETL執(zhí)行隊列中的位置越靠前。則對ETL觸發(fā)條件的監(jiān)控流程如圖3所示,包括以下步驟步驟s301、觸發(fā)ETL執(zhí)行;在滿足ETL執(zhí)行觸發(fā)條件(如用戶手動觸發(fā),事件觸發(fā)等)時,觸發(fā)ETL立即執(zhí)行。步驟s302、獲取當前時間A;接收到ETL立即執(zhí)行指令后,獲取當前時間A作為ETL的執(zhí)行時間。步驟s303、查詢ETL執(zhí)行隊列。步驟s304、判斷ETL執(zhí)行隊列是否為空,是則進行步驟s305,否則進行步驟s306。步驟s305、執(zhí)行隊列為空,將A插入執(zhí)行隊列;流程結(jié)束。步驟s306、從隊首開始,依次獲取執(zhí)行隊列中的每一個值B。步驟s307、比較A和B的關(guān)系,A《B(即當前時間A早于B表示的時間)時進行步驟s!308,A>B(即當前時間A晚于B表示的時間)時進行步驟s309。存在當前時間A晚于B表示的時間的情況的原因在于,在當前時間A之前的B所表示的時間有ETL執(zhí)行,在當前時間A插入執(zhí)行隊列時該ETL尚未執(zhí)行完畢,導(dǎo)致B所表示的時間尚未從執(zhí)行隊列中刪除。因此,可能存在當前時間A晚于B表示的時間的情況。步驟s308、將A插入到ETL執(zhí)行隊列中B的位置之前;流程結(jié)束。步驟s309、判斷B是否是ETL執(zhí)行隊列中的最后一個值,是則進行步驟s310,否則進行步驟s306。步驟s310、將A插入到ETL執(zhí)行隊列的最后;流程結(jié)束。首先對ETL的才丸行進行介紹,根據(jù)ETL執(zhí)行隊列執(zhí)行ETL的原理在于,周期性檢測當前時間與ETL執(zhí)行隊列中時間順序最靠前的時間的關(guān)系,當前時間到達或超過ETL執(zhí)行隊列中時間順序最靠前的時間時,開始執(zhí)行ETL,ETL執(zhí)行完畢后,將ETL執(zhí)行隊列中時間順序最靠前的時間從ETL隊列中刪除。另外,在每次ETK執(zhí)行過程中,獲取上一次ETL執(zhí)行的上下文環(huán)境用于ETL的執(zhí)行;在每次ETK執(zhí)行完畢后,存儲本次ETL執(zhí)行的上下文環(huán)境。具體的,該ETL的執(zhí)行流程如圖4所示,包括步驟s401、從隊首開始,依次獲取執(zhí)行隊列中的每一個值C。步驟s402、比較C和當前時間D的關(guān)系,C>D(即C表示的時間晚于當前時間D)則進行步驟s403,C《D(即C表示的時間早于或到達當前時間D)則進行步驟s404。步驟s403、等待5s,進行步驟s401。這里以5s為一個周期為例,具體的時間可以根據(jù)需要進行設(shè)置。步驟s404、獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境。步驟s405、執(zhí)行ETL任務(wù);獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境后,ETL任務(wù)在上一次的基礎(chǔ)上開始執(zhí)行,該ETL任務(wù)的執(zhí)行包括執(zhí)行ETL任務(wù)中包括的每一任務(wù)保存項。步驟s406、保存ETL任務(wù)的上下文環(huán)境;本次ETL任務(wù)執(zhí)行完成后,將本次ETL任務(wù)執(zhí)行的上下文環(huán)境(如ETL本次執(zhí)行的時間點,本次抽取到的原始數(shù)據(jù)的ID,本次加載目的數(shù)據(jù)的ID等等)保存,供下次ETL任務(wù)執(zhí)行使用。步驟s407、刪除執(zhí)行隊列中第一個值,進行步驟s403。通過該步驟,將ETL執(zhí)行隊列中時間順序最靠前的時間從ETL隊列中刪除。本發(fā)明中還提供一種ETL的執(zhí)行裝置,如圖5所示,包括時間獲取單元IO,用于在判斷滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間;該ETL任務(wù)的執(zhí)行觸發(fā)條件包括手動觸發(fā)、或事件觸發(fā)。隊列維護單元20,用于將時間獲取單元10獲取的當前時間作為該ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列。隊列執(zhí)行單元30,用于根據(jù)隊列維護單元10維護的ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。本發(fā)明的ETL的執(zhí)行裝置中,如圖6所示,還可以具有以下結(jié)構(gòu)其中,隊列維護單元20可以進一步包括第一判斷子單元21,用于判斷ETL執(zhí)行隊列是否為空。時間插入子單元22,用于在第一判斷子單元21判斷ETL執(zhí)行隊列為空時,將當前時間作為該ETL任務(wù)的執(zhí)行時間插入到ETL執(zhí)行隊列的隊首;在第一判斷子單元21判斷ETL執(zhí)行隊列不為空時,根據(jù)當前時間、以及ETL執(zhí)行隊列中的已有時間,按照時間先后順序?qū)斍皶r間作為該ETL任務(wù)的執(zhí)行時間插入到ETL執(zhí)行隊列中的對應(yīng)位置。時間刪除子單元23,用于在隊列執(zhí)行單元30的ETL任務(wù)執(zhí)行完畢后,將具有最先時間順序的時間從ETL執(zhí)行隊列中刪除。其中,隊列執(zhí)行單元30可以進一步包括時間獲取子單元31,用于獲取ETL執(zhí)行隊列中具有最先時間順序的時間。上下文環(huán)境獲取子單元32,用于在時間獲取子單元31獲取的當前時間等于或晚于具有最先時間順序的時間時,獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境。執(zhí)行子單元33,用于根據(jù)上下文環(huán)境獲取子單元32獲取到的上下文環(huán)境執(zhí)行ETL任務(wù)。上下文環(huán)境存儲子單元M,用于在執(zhí)行子單元33的ETL任務(wù)執(zhí)行完畢后,保存本次ETL任務(wù)執(zhí)行的上下文環(huán)境。該ETL的執(zhí)行裝置中還可以包括ETL任務(wù)設(shè)置單元40,用于設(shè)置ETL任務(wù),每個ETL任務(wù)中包括至少一個任務(wù)保存項,每一任務(wù)保存項中包括上下文環(huán)境;對各任務(wù)保存項的上下文環(huán)境綜合后即可得到該ETL任務(wù)執(zhí)行的上下文環(huán)境。其中,ETL任務(wù)執(zhí)行的上下文環(huán)境至少包括本次執(zhí)行的時間、本次抽取到的原始數(shù)據(jù)的ID、本次加載目的數(shù)據(jù)的ID中的一種或多種。隊列執(zhí)行單元30將根據(jù)該設(shè)置執(zhí)行ETL任務(wù)。同時,時間獲取單元IO可以根據(jù)該設(shè)置判斷是否滿足ETL任務(wù)的執(zhí)行觸發(fā)條件。系統(tǒng)保存項設(shè)置單元50,用于設(shè)置多個任務(wù)保存項,這些任務(wù)保存項構(gòu)成了系統(tǒng)中所有可能的上下文環(huán)境保存項,不同的任務(wù)保存項可以通過不同的標識進行區(qū)分。在需要對ETL中的上下文環(huán)境進行擴展時,只需對系統(tǒng)保存項設(shè)置單元50中的任務(wù)保存項進行擴展、添加新的任務(wù)保存項即可即可。ETL任務(wù)檢查單元60,用于檢查ETL任務(wù)設(shè)置單元40設(shè)置的ETL任務(wù)中包括的每一個任務(wù)保存項是否屬于系統(tǒng)保存項設(shè)置單元50中預(yù)先設(shè)置的系統(tǒng)保存項。為了保證所有ETL任務(wù)可控,對于ETL任務(wù)中包括的不屬于系統(tǒng)保存項的任務(wù)保存項進行刪除。以下描述一個本發(fā)明中ETL執(zhí)行方法的具體應(yīng)用場景。假設(shè)某公司統(tǒng)計員工訪問網(wǎng)站的日報表,可配置成周期性ETL,如在每天的凌晨1點統(tǒng)計前一天的所有數(shù)據(jù),形成前一天的日纟艮表。如果在今天下午4點需要查看4點前員工訪問網(wǎng)站的日報表,則需要觸發(fā)立即執(zhí)行ETL,將4點前的數(shù)據(jù)匯集成日報表,并保存原始數(shù)據(jù)的ID及執(zhí)行時間作為上下文環(huán)境。在明天凌晨1點啟動周期性ETL,取得今天4點執(zhí)行完成時的上下文環(huán)境,從該位置繼續(xù)執(zhí)行。使用這種方案,不會影響結(jié)果數(shù)據(jù)的準確性,實現(xiàn)了立即執(zhí)行ETL與周期性ETL的融合。使用本發(fā)明提供的方法和裝置時,可同時通過周期性ETL方式或一次性ETL來觸發(fā)ETL的執(zhí)行,克服了現(xiàn)有技術(shù)中只能單一實現(xiàn)周期性ETL或一次性ETL的缺陷,加強了ETL執(zhí)行與用戶的交互性,增加了ETL執(zhí)行的靈活性。另外,通過保存每一次ETL執(zhí)行的上下文環(huán)境(包括周期性ETL的執(zhí)行上下文環(huán)境及一次性ETL的上下文環(huán)境),使一次性ETL的執(zhí)行不會影響到周期性ETL的執(zhí)行,也不會影響ETL結(jié)果數(shù)據(jù)的準確性。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,月良務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。權(quán)利要求1、一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法,其特征在于,包括滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間;將所述當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列;根據(jù)所述ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。2、如權(quán)利要求l所述的方法,其特征在于,所述ETL任務(wù)的執(zhí)行觸發(fā)條件包括手動觸發(fā)、或事件觸發(fā)。3、如權(quán)利要求1所述的方法,其特征在于,所述將當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列包括判斷所述ETL執(zhí)行隊列是否為空,為空時則將所述當前時間作為所述ETL任務(wù)的執(zhí)行時間插入到所述ETL執(zhí)行隊列的隊首;所述ETL執(zhí)行隊列不為空時,根據(jù)所述當前時間、以及所述ETL執(zhí)行隊列中的已有時間,按照時間先后順序?qū)⑺霎斍皶r間作為所述ETL任務(wù)的執(zhí)行時間插入到所述ETL執(zhí)行隊列中的對應(yīng)位置。4、如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)ETL執(zhí)行隊列執(zhí)行ETL任務(wù)包括獲取所述ETL執(zhí)行隊列中具有最先時間順序的時間;當前時間等于或晚于所述具有最先時間順序的時間時,獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境;根據(jù)所述獲取到的上下文環(huán)境執(zhí)行ETL任務(wù)。5、如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)獲取到的上下文環(huán)境執(zhí)行ETL后,還包括ETL執(zhí)行完畢后,保存本次ETL執(zhí)行的上下文環(huán)境;將所述具有最先時間順序的時間從所述ETL執(zhí)行隊列中刪除。6、如權(quán)利要求1至5中任一項所述的方法,其特征在于,所述滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間前,還包括設(shè)置ETL任務(wù),所述ETL任務(wù)中包括至少一個任務(wù)保存項,所述每一任務(wù)保存項中包括上下文環(huán)境;對各所述任務(wù)保存項的上下文環(huán)境綜合后得到所述ETL任務(wù)執(zhí)行的上下文環(huán)境。7、如權(quán)利要求6所述的方法,其特征在于,所述ETL任務(wù)中包括的每一個任務(wù)保存項,均屬于預(yù)先設(shè)置的系統(tǒng)保存項;對于所述ETL任務(wù)中包括的不屬于系統(tǒng)保存項的任務(wù)保存項進行刪除。8、如權(quán)利要求4或5所述的方法,其特征在于,所述ETL執(zhí)行的上下文環(huán)境至少包括本次執(zhí)行時間、本次抽取到的原始數(shù)據(jù)的ID、本次加載目的數(shù)據(jù)的ID中的一種或多種。9、一種ETL的執(zhí)行裝置,其特征在于,包括時間獲取單元,用于在判斷滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間;隊列維護單元,用于將所述時間獲取單元獲取的當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列;隊列執(zhí)行單元,用于根據(jù)所述隊列維護單元維護的ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。10、如權(quán)利要求9所述的裝置,其特征在于,所述隊列維護單元包括第一判斷子單元,用于判斷所述ETL執(zhí)行隊列是否為空;時間插入子單元,用于在所述第一判斷子單元判斷所述ETL執(zhí)行隊列為空時,將所述當前時間插入到所述ETL執(zhí)行隊列的隊首;在所述第一判斷子單元判斷所述ETL執(zhí)行隊列不為空時,根據(jù)所述當前時間、以及所述ETL執(zhí)行隊列中的已有時間,^接照時間先后順序?qū)⑺霎斍皶r間作為所述ETL任務(wù)的執(zhí)行時間插入到所述ETL執(zhí)行隊列中的對應(yīng)位置。11、如權(quán)利要求9所述的裝置,其特征在于,所述隊列執(zhí)行單元包括時間獲取子單元,用于獲取所述ETL執(zhí)行隊列中具有最先時間順序的時間;上下文環(huán)境獲取子單元,用于在所述時間獲取子單元獲取的當前時間等于或晚于所述具有最先時間順序的時間時,獲取上一次ETL任務(wù)執(zhí)行的上下文環(huán)境;執(zhí)行子單元,用于根據(jù)所述上下文環(huán)境獲取子單元獲取到的上下文環(huán)境執(zhí)行ETL任務(wù)。12、如權(quán)利要求11所述的裝置,其特征在于,所述隊列執(zhí)行單元還包括上下文環(huán)境存儲子單元,用于在所述執(zhí)行子單元的ETL4丸行完畢后,保存本次ETL執(zhí)行的上下文環(huán)境;所述隊列維護單元還包括時間刪除子單元,用于在所述隊列執(zhí)行單元的ETL執(zhí)行完畢后,將所述具有最先時間順序的時間從所述ETL執(zhí)行隊列中刪除。13、如權(quán)利要求9至12中任一項所述的裝置,其特征在于,所述執(zhí)行裝置還包括ETL任務(wù)設(shè)置單元,用于設(shè)置ETL任務(wù),所述ETL任務(wù)中包括至少一個任務(wù)保存項,所述每一任務(wù)保存項中包括上下文環(huán)境;對各所述任務(wù)保存項的上下文環(huán)境綜合后得到所述ETL任務(wù)執(zhí)行的上下文環(huán)境。14、如權(quán)利要求13所述的裝置,其特征在于,還包括系統(tǒng)保存項設(shè)置單元,用于設(shè)置多個任務(wù)保存項;ETL任務(wù)檢查單元,用于檢查所述ETL任務(wù)設(shè)置單元設(shè)置的ETL任務(wù)中包括的每一個任務(wù)保存項是否屬于預(yù)先設(shè)置的系統(tǒng)保存項;對于所述ETL任務(wù)中包括的不屬于系統(tǒng)保存項的任務(wù)保存項進行刪除。全文摘要本發(fā)明公開了一種數(shù)據(jù)抽取、轉(zhuǎn)換和加載ETL的執(zhí)行方法和裝置。該方法包括滿足ETL任務(wù)的執(zhí)行觸發(fā)條件時,獲取當前時間;將所述當前時間作為所述ETL任務(wù)的執(zhí)行時間插入ETL執(zhí)行隊列;根據(jù)所述ETL執(zhí)行隊列執(zhí)行ETL任務(wù)。通過使用本發(fā)明,將周期性ETL的執(zhí)行時間和一次性ETL的執(zhí)行時間統(tǒng)一通過隊列進行維護,可同時通過周期性ETL方式或一次性ETL來觸發(fā)ETL的執(zhí)行,克服了現(xiàn)有技術(shù)中只能單一實現(xiàn)周期性ETL或一次性ETL的缺陷,加強了ETL執(zhí)行與用戶的交互性,增加了ETL執(zhí)行的靈活性。文檔編號G06F9/46GK101388038SQ200810172019公開日2009年3月18日申請日期2008年10月28日優(yōu)先權(quán)日2008年10月28日發(fā)明者朱海濤,果鐘申請人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
长沙县| 永吉县| 扎兰屯市| 应城市| 仙游县| 灵璧县| 常熟市| 祁东县| 乌什县| 信宜市| 柳州市| 毕节市| 越西县| 新野县| 申扎县| 齐齐哈尔市| 镇原县| 德令哈市| 沁源县| 河西区| 罗平县| 扶余县| 长寿区| 廉江市| 怀宁县| 额尔古纳市| 田东县| 金溪县| 英吉沙县| 万盛区| 家居| 钟祥市| 东方市| 耒阳市| 天津市| 依兰县| 苍山县| 西藏| 桂东县| 合水县| 勐海县|