一種用于調度etl任務的方法與設備的制作方法
【專利摘要】本發(fā)明的目的是提供一種用于調度ETL任務的方法與設備,具體地,獲取ETL任務及其任務配置信息;根據任務配置信息,確定ETL任務的調度時間信息;根據ETL任務,以及ETL任務的調度時間信息,建立或更新任務池;根據調度時間信息,對任務池中的ETL任務進行調度,以獲得待執(zhí)行的目標ETL任務;執(zhí)行目標ETL任務。其中,與現有技術相比,本發(fā)明通過根據ETL任務的任務配置信息,確定ETL任務的調度時間信息,以根據ETL任務及其調度時間信息,建立或更新任務池,根據調度時間信息,對任務池中的ETL任務進行調度,獲得待執(zhí)行的目標ETL任務,實現了根據ETL任務的調度時間信息,對任務池中的ETL任務進行調度,提高了ETL任務調度的效率及數據倉庫開發(fā)效率和資源利用率。
【專利說明】一種用于調度ETL任務的方法與設備
【技術領域】
[0001]本發(fā)明涉及互聯網【技術領域】,尤其涉及一種用于調度ETL任務的技術。
【背景技術】
[0002] 在數據倉庫建立過程中,核心技術是抽取-轉換-加載(Extraction-Transforma ti〇n-L〇ading,ETL)任務,其能夠按照統一的規(guī)則集中并提高數據的價值,是負責完成數據 從數據源向目標數據倉庫轉化的過程。隨著數據規(guī)模和數據分析業(yè)務的快速增長,ETL任 務的數量和復雜度也隨之快速增長,但由于ETL包括眾多的處理任務,且這些處理任務之 間有一定的約束關系,而目前缺乏有效地支持ETL開發(fā)和運營的工具,不僅影響了對ETL任 務的調度和管理效率,也影響了數據倉庫開發(fā)效率和資源利用率。
【發(fā)明內容】
[0003] 本發(fā)明的目的是提供一種在任務調度設備端用于調度ETL任務的方法與設備。
[0004] 根據本發(fā)明的一個方面,提供了一種用于調度ETL任務的方法,其中,該方法包括 以下步驟:
[0005] 獲取一個或多個ETL任務,以及所述ETL任務所對應的任務配置信息;
[0006] 根據所述任務配置信息,確定所述ETL任務所對應的調度時間信息;
[0007] 根據所述一個或多個ETL任務,以及所述ETL任務所對應的調度時間信息,建立或 更新對應的任務池;
[0008] 其中,該方法還包括:
[0009] 根據所述調度時間信息,對所述任務池中的ETL任務進行調度,以獲得待執(zhí)行的 目標ETL任務;
[0010] 執(zhí)行所述目標ETL任務。
[0011] 根據本發(fā)明的另一個方面,還提供了一種在網絡設備端用于輔助調度ETL任務的 方法,其中,該方法包括以下步驟:
[0012] -在網絡設備中注冊一個或多個任務調度設備,其中,所述任務調度設備所對應的 注冊信息包括所述任務調度設備所對應的ETL任務與其他任務調度設備所對應的ETL任務 之間的依賴關系;
[0013] 其中,該方法還包括:
[0014] A接收所述任務調度設備發(fā)送的目標ETL任務所對應的執(zhí)行結果信息;
[0015] B將所述執(zhí)行結果信息提供給對應的用戶設備。
[0016] 根據本發(fā)明的一個方面,提供了一種用于調度ETL任務的任務調度設備,其中,該 任務調度設備包括:
[0017] 任務獲取裝置,用于獲取一個或多個ETL任務,以及所述ETL任務所對應的任務配 置信息;
[0018] 調度時間確定裝置,用于根據所述任務配置信息,確定所述ETL任務所對應的調 度時間信息;
[0019] 任務池建立裝置,用于根據所述一個或多個ETL任務,以及所述ETL任務所對應的 調度時間信息,建立或更新對應的任務池;
[0020] 其中,該任務調度設備還包括: 。
[0021] 調度裝置,用于根據所述調度時間信息,對所述任務池中的ETL任務進行調度,以 獲得待執(zhí)行的目標ETL任務;
[0022] 執(zhí)行裝置,用于執(zhí)行所述目標ETL任務。
[0023] 根據本發(fā)明的另一個方面,還提供了一種用于輔助調度ETL任務的網絡設備,其 中,該網絡設備包括:
[0024] 注冊裝置,用于在網絡設備中注冊一個或多個任務調度設備,其中,所述任務調度 設備所對應的注冊信息包括所述任務調度設備所對應的ETL任務與其他任務調度設備所 對應的ETL任務之間的依賴關系;
[0025] 其中,該網絡設備還包括:
[0026]第一接收裝置,用于接收所述任務調度設備發(fā)送的目標ETL任務所對應的執(zhí)行結 果信息;
[0027] 提供裝置,用于將所述執(zhí)行結果信息提供給對應的用戶設備。
[0028] 根據本發(fā)明的再一個方面,還通過了一種用于調度ETL任務的系統,其中,該系統 包括如前述根據本發(fā)明一個方面的用于調度ETL任務的任務調度設備和如前述根據本發(fā) 明另一個方面的用于輔助調度ETL任務的網絡設備。
[0029] 與現有技術相比,本發(fā)明通過根據ETL任務所對應的任務配置信息,確定所述ETL 任務所對應的調度時間信息,以根據所述ETL任務及其所對應的調度時間信息,建立或更 新對應的任務池,從而根據所述調度時間信息,對所述任務池中的ETL任務進行調度,以獲 得待執(zhí)行的目標ETL任務,實現了根據ETL任務的調度時間信息,對任務池中的ETL任務進 行調度,使得ETL任務可以專著于業(yè)務邏輯,不僅提高了 ETL任務的實時性,也提高了 ETL 任務調度的效率及數據倉庫開發(fā)效率和資源利用率。此外,本發(fā)明還可將目標ETL任務的 執(zhí)行結果信息發(fā)送至對應的網絡設備,以通過網絡設備將所述執(zhí)行結果信息提供給對應的 用戶設備,從而更進一步提高了 ETL任務調度的效率,及ETL運營用戶的運營體驗。而且, 當執(zhí)行結果信息包括成功執(zhí)行結果信息時,本發(fā)明還可根據目標ETL任務所對應的注冊信 息,確定依賴于所述目標ETL任務的后續(xù)任務,以向所述后續(xù)任務所對應的任務調度設備 發(fā)送所述目標ETL任務的執(zhí)行結果信息,實現了不同任務調度設備的 ETL任務之間的調度, 從而更一步地提高了 ETL任務的實時性,也提高了 ETl任務調度的效率及數據倉庫開發(fā)效 率和資源利用率。
【專利附圖】
【附圖說明】
[0030]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它 特征、目的和優(yōu)點將會變得更明顯:
[0031]圖1示出根據本發(fā)明一個方面的用于調度ETL任務的任務調度設備的設備示意 圖;
[0032]圖2示出根據本發(fā)明一個方面的用于調度ETL任務的任務調度設備的系統拓撲 圖;
[0033] 圖3示出根據本發(fā)明一個優(yōu)選實施例的用于調度ETL任務的任務調度設備的網絡 設備的設備示意圖;
[0034] 圖4示出根據本發(fā)明另一個方面的在任務調度設備端用于調度ETL任務的方法流 程圖;
[0035] 圖5示出根據本發(fā)明一個優(yōu)選實施例的任務調度設備和網絡設備配合實現用于 調度ETL任務的方法流程圖。
[0036] 附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0037] 下面結合附圖對本發(fā)明作進一步詳細描述。
[0038] 圖1示出根據本發(fā)明一個方面的用于調度ETL任務的任務調度設備的任務調度設 備1,其中,任務調度設備1包括任務獲取裝置11、調度時間確定裝置12、任務池建立裝置 13、調度裝置14和執(zhí)行裝置15。具體地,任務獲取裝置11獲取一個或多個ETL任務,以及 所述ETL任務所對應的任務配置信息;調度時間確定裝置12根據所述任務配置信息,確定 所述ETL任務所對應的調度時間信息;任務池建立裝置13根據所述一個或多個ETL任務, 以及所述ETL任務所對應的調度時間信息,建立或更新對應的任務池;調度裝置14根據所 述調度時間信息,對所述任務池中的ETL任務進行調度,以獲得待執(zhí)行的目標ETL任務;執(zhí) 行裝置15執(zhí)行所述目標ETL任務。在此,任務調度設備1負責ETL任務的部署、調度和任 務監(jiān)控,其上可部署由至少一個獨立ETL任務,以及一個或多個依賴ETL任務組成的任務 群,其中,獨立 ETL任務是指沒有前置ETL任務的任務,依賴ETL任務是指依賴于某個前置 ETL任務的任務。在此,通過任務群對ETL任務進行組織和區(qū)分,實現了簡化ETL任務運營 成本、ETL任務數量無限擴展的有益效果。在此,任務調度設備1包括但不限于網絡主機、 單個網絡服務器、多個網絡服務器集或多個服務器構成的云。在此,云由基于云計算(Cloud Computing)的大量計算機或網絡服務器構成,其中,云計算是分布式計算的一種,由一群松 散耦合的計算機集組成的一個超級虛擬計算機。本領域技術人員應能理解上述任務調度設 備1僅為舉例,其他現有的或今后可能出現的網絡設備如可適用于本發(fā)明,也應包含在本 發(fā)明保護范圍以內,并在此以引用方式包含于此。
[0039]具體地,任務獲取裝置11通過諸如存儲有ETL任務及其任務配置信息的模塊如 任務元數據管理模塊提供的應用程序接口(API),獲取一個或多個ETL任務,以及所述ETL 任務所對應的任務配置信息;或者,可首先通過掃描ETL任務列表,以獲得一個或多個滿足 預定條件的ETL任務,如根據任務列表中ETL任務配置的上游ETL任務信息,將對應的上 游ETL任務執(zhí)行完成后ETL任務作為所述一個或多個ETL任務,然后,再基于該一個或多個 ETL任務,從所述任務元數據管理模塊中獲得所述ETL任務所對應的任務配置信息;或者, 通過可信任客戶端提供的新增ETL任務的應用程序接口(API),獲取一個或多個ETL任務, 以及所述ETL任務所對應的任務配置信息。
[0040]在此,所述任務配置信息用于描述ETL任務的多種屬性類別信息,諸如任務本身 屬性信息、任務群信息、依賴關系信息、開發(fā)控制信息等,如下表1所示:
[0041] ,- ------ t
【權利要求】
1. 一種在任務調度設備端用于調度ETL任務的方法,其中,該方法包括以下步驟: X獲取一個或多個ETL任務,以及所述ETL任務所對應的任務配置信息; y根據所述任務配置信息,確定所述ETL任務所對應的調度時間信息; z根據所述一個或多個ETL任務,以及所述ETL任務所對應的調度時間信息,建立或更 新對應的任務池; 其中,該方法還包括: a根據所述調度時間信息,對所述任務池中的ETL任務進行調度,以獲得待執(zhí)行的目標 ETL任務; b執(zhí)行所述目標ETL任務。
2. 根據權利要求1所述的方法,其中,該方法還包括: r當所述目標ETL任務被成功執(zhí)行后,確定與所述目標ETL任務的后續(xù)ETL任務相對應 的調度時間信息; 其中,所述步驟z還包括: -根據所述后續(xù)ETL任務及其調度時間信息,更新所述任務池。
3. 根據權利要求2所述的方法,其中,所述步驟r包括: -當所述目標ETL任務被成功執(zhí)行后,根據所述后續(xù)ETL任務的任務周期與所述目標 ETL任務的任務周期,確定所述后續(xù)ETL任務所對應的調度時間信息。
4. 根據權利要求2所述的方法,其中,所述步驟r包括: -當所述目標ETL任務被成功執(zhí)行后,根據所述后續(xù)ETL任務的任務周期與所述目標 ETL任務的任務周期,確定所述后續(xù)ETL任務與所述目標ETL任務的依賴關系信息; -根據所述依賴關系信息,以及所述后續(xù)ETL任務的任務周期與所述目標ETL任務的任 務周期,確定所述后續(xù)ETL任務所對應的調度時間信息。
5. 根據權利要求1至4中任一項所述的方法,其中,該方法還包括: -當所述目標ETL任務被執(zhí)行失敗后,更新所述目標ETL任務所對應的調度時間信息; 其中,所述步驟z還包括: -根據所述目標ETL任務及其更新后的調度時間信息,更新所述任務池。
6. 根據權利要求1至5中任一項所述的方法,其中,所述步驟y包括: -根據所述任務配置信息,以及所述ETL任務所對應的應用相關信息,確定所述ETL任 務所對應的調度時間信息。
7. 根據權利要求1至6中任一項所述的方法,其中,該方法還包括: -將所述目標ETL任務的執(zhí)行結果信息發(fā)送至對應的網絡設備。
8. 根據權利要求7所述的方法,其中,該方法還包括: -接收所述網絡設備提供的其他任務池中被成功執(zhí)行的第二目標ETL任務的執(zhí)行結果 信息; -根據所述執(zhí)行結果信息,確定與所述第二目標ETL任務的第二后續(xù)ETL任務相對應的 調度時間信息; 其中,所述步驟z還包括: -根據所述第二后續(xù)ETL任務及其調度時間信息,更新所述任務池。
9. 一種在網絡設備端用于輔助調度ETL任務的方法,其中,該方法包括以下步驟: -在網絡設備中注冊一個或多個任務調度設備,其中,所述任務調度設備所對應的注冊 信息包括所述任務調度設備所對應的ETL任務與其他任務調度設備所對應的ETL任務之間 的依賴關系; 其中,該方法還包括: A接收所述任務調度設備發(fā)送的目標ETL任務所對應的執(zhí)行結果信息; B將所述執(zhí)行結果信息提供給對應的用戶設備。
10. 根據權利要求9所述的方法,其中,所述該方法還包括: -當所述執(zhí)行結果信息包括成功執(zhí)行結果信息時,根據所述目標ETL任務所對應的注 冊信息,確定依賴于所述目標ETL任務的后續(xù)任務; -向所述后續(xù)任務所對應的任務調度設備發(fā)送所述目標ETL任務的執(zhí)行結果信息。
11. 一種用于調度ETL任務的任務調度設備,其中,該任務調度設備包括: 任務獲取裝置,用于獲取一個或多個ETL任務,以及所述ETL任務所對應的任務配置信 息; 調度時間確定裝置,用于根據所述任務配置信息,確定所述ETL任務所對應的調度時 間信息; 任務池建立裝置,用于根據所述一個或多個ETL任務,以及所述ETL任務所對應的調度 時間信息,建立或更新對應的任務池; 其中,該任務調度設備還包括: 調度裝置,用于根據所述調度時間信息,對所述任務池中的ETL任務進行調度,以獲得 待執(zhí)行的目標ETL任務; 執(zhí)行裝置,用于執(zhí)行所述目標ETL任務。
12. 根據權利要求11所述的任務調度設備,其中,該任務調度設備還包括: 后續(xù)調度確定裝置,用于當所述目標ETL任務被成功執(zhí)行后,確定與所述目標ETL任務 的后續(xù)ETL任務相對應的調度時間信息; 其中,所述任務池建立裝置還用于: -根據所述后續(xù)ETL任務及其調度時間信息,更新所述任務池。
13. 根據權利要求12所述的任務調度設備,其中,所述后續(xù)調度確定裝置用于: -當所述目標ETL任務被成功執(zhí)行后,根據所述后續(xù)ETL任務的任務周期與所述目標 ETL任務的任務周期,確定所述后續(xù)ETL任務所對應的調度時間信息。
14. 根據權利要求12所述的任務調度設備,其中,所述后續(xù)調度確定裝置用于: -當所述目標ETL任務被成功執(zhí)行后,根據所述后續(xù)ETL任務的任務周期與所述目標 ETL任務的任務周期,確定所述后續(xù)ETL任務與所述目標ETL任務的依賴關系信息; -根據所述依賴關系信息,以及所述后續(xù)ETL任務的任務周期與所述目標ETL任務的任 務周期,確定所述后續(xù)ETL任務所對應的調度時間信息。
15. 根據權利要求11至14中任一項所述的任務調度設備,其中,該任務調度設備還包 括: 更新裝置,用于當所述目標ETL任務被執(zhí)行失敗后,更新所述目標ETL任務所對應的調 度時間信息; 其中,所述任務池建立裝置還用于: -根據所述目標ETL任務及其更新后的調度時間信息,更新所述任務池。
16. 根據權利要求11至15中任一項所述的任務調度設備,其中,所述調度時間確定裝 置用于: -根據所述任務配置信息,以及所述ETL任務所對應的應用相關信息,確定所述ETL任 務所對應的調度時間信息。
17. 根據權利要求11至16中任一項所述的任務調度設備,其中,該任務調度設備還包 括: 第一發(fā)送裝置,用于將所述目標ETL任務的執(zhí)行結果信息發(fā)送至對應的網絡設備。
18. 根據權利要求17所述的任務調度設備,其中,該任務調度設備還包括: 第二接收裝置,用于接收所述網絡設備提供的其他任務池中被成功執(zhí)行的第二目標 ETL任務的執(zhí)行結果信息; 第二后續(xù)確定裝置,用于根據所述執(zhí)行結果信息,確定與所述第二目標ETL任務的第 二后續(xù)ETL任務相對應的調度時間信息; 其中,所述任務池建立裝置還用于: -根據所述第二后續(xù)ETL任務及其調度時間信息,更新所述任務池。
19. 一種用于輔助調度ETL任務的網絡設備,其中,該網絡設備包括: 注冊裝置,用于在網絡設備中注冊一個或多個任務調度設備,其中,所述任務調度設備 所對應的注冊信息包括所述任務調度設備所對應的ETL任務與其他任務調度設備所對應 的ETL任務之間的依賴關系; 其中,該網絡設備還包括: 第一接收裝置,用于接收所述任務調度設備發(fā)送的目標ETL任務所對應的執(zhí)行結果信 息; 提供裝置,用于將所述執(zhí)行結果信息提供給對應的用戶設備。
20. 根據權利要求19所述的網絡設備,其中,該網絡設備還包括: 后續(xù)確定裝置,用于當所述執(zhí)行結果信息包括成功執(zhí)行結果信息時,根據所述目標ETL 任務所對應的注冊信息,確定依賴于所述目標ETL任務的后續(xù)任務; 第二發(fā)送裝置,用于向所述后續(xù)任務所對應的任務調度設備發(fā)送所述目標ETL任務的 執(zhí)行結果信息。
21. -種用于調度ETL任務的系統,包括如權利要求11至18中任一項所述的任務調度 設備和如權利要求19或20所述的網絡設備。
【文檔編號】G06F9/46GK104252381SQ201310270366
【公開日】2014年12月31日 申請日期:2013年6月30日 優(yōu)先權日:2013年6月30日
【發(fā)明者】毛楓華, 王以弘, 先永春, 肖振全, 史紹偉, 楊小飛, 胡建華, 李瑾, 謝馬林, 郝博偉, 鄧桂英, 宋嵐 申請人:北京百度網訊科技有限公司