本說明書實施例涉及數據處理,尤其是一種跨工作流任務平臺的數據同步調度方法和裝置。
背景技術:
1、現有的數據同步方案在針對跨工作流任務平臺的大規模數倉遷移問題時,由于各數據庫表、數據作業之間錯綜復雜的依賴關系,難以尋找出一種有效的、表級粒度的、且在不影響日常業務批量運行的數據同步調度方案。
2、有鑒于此,本說明書實施例旨在提供一種跨工作流任務平臺的數據同步調度方法和裝置。
技術實現思路
1、針對現有技術的上述問題,本說明書實施例的目的在于,提供一種跨工作流任務平臺的數據同步調度方法和裝置,以解決現有技術中難以在不影響日常業務批量運行的情況下,一次性完成跨工作流任務平臺的大規模的數據同步的問題。
2、為了解決上述技術問題,本說明書實施例的具體技術方案如下:
3、第一方面,本說明書實施例提供一種跨工作流任務平臺的數據同步調度方法,包括:
4、接收數據同步任務;
5、根據所述數據同步任務生成導出作業,所述導出作業包括所述導出作業的導出條件;
6、將所述導出作業部署至導出端etl調度集群上,以使所述導出端etl調度集群根據所述導出條件和負載均衡算法,將所述導出作業對應的數據庫表從導出端數倉集群中導出并落在導入端etl調度集群的子節點上;
7、監聽所述數據庫表在所述導入端etl調度集群的子節點上的落入動作;
8、根據監聽結果和所述數據同步任務生成導入作業,所述導入作業包括導入條件;
9、將所述導入作業部署至導入端etl調度集群上,以使所述導入端etl調度集群根據所述導入條件,將所述子節點上的所述數據庫表導入至導入端數倉集群中。
10、具體地,所述數據同步任務中攜帶有數據同步配置信息,所述同步配置信息包括待同步數據庫表、同步數據日期、頻度、同步模式、第一檢查標識和與導出端日常批量的第一依賴關系;
11、根據所述數據同步任務生成導出作業,進一步為:
12、根據所述待同步數據庫表的源庫源表信息、同步數據日期、頻度和同步模式,修改預設的導出模板腳本得到導出腳本;
13、根據所述第一檢查標識、所述第一依賴關系和所述頻度,確定導出條件;
14、根據所述導出腳本和所述導出條件,得到所述導出作業。
15、進一步地,以使所述導出端etl調度集群根據所述導出條件和負載均衡算法,將所述導出作業對應的數據庫表從導出端數倉集群中導出并落在導入端etl調度集群的子節點上,包括:
16、所述導出端etl調度集群根據所述第一檢查標識,判斷是否需要根據所述第一依賴關系執行所述導出作業;
17、若需要,則在所述第一依賴關系和所述頻度滿足后,根據負載均衡算法將所述數據庫表從所述導出端數倉集群中導出至所述導入端etl調度集群的子節點上;
18、若不需要,則根據所述第一檢查標識,判斷所述導出作業的優先級是否為最高等級;
19、若是,則直接執行所述導出作業;
20、若否,則在所述導出端的日常批量全部完成后,執行所述導出作業。
21、具體地,所述導出端etl調度集群根據如下方法判斷所述第一依賴關系是否滿足:
22、根據所述第一依賴關系中的各依賴作業的作業名,查詢各所述依賴作業的作業狀態;
23、判斷各所述依賴作業的作業狀態是否為已完成;
24、若是,則滿足所述第一依賴關系。
25、具體地,所述同步配置信息還包括所述導入作業的類型、第二檢查標識和與導入端日常批量的第二依賴關系;
26、根據監聽結果和所述數據同步任務生成導入作業,進一步為:
27、根據所述待同步數據庫表的目標庫目標表信息、同步數據日期和頻度,修改預設的導入模板腳本得到導入腳本;
28、根據監聽到的所述數據庫表所落入的導入端etl調度集群子節點的ip地址,配置所述導入作業的邏輯權值;
29、根據導入作業的類型配置所述導入作業在導入端所占用資源的資源消耗權值,所占用資源包括內存、cpu和i/o中的一種或幾種的組合;
30、根據所述第二檢查標識、所述第二依賴關系、所述頻度和所述資源消耗權值,確定導入條件;
31、根據所述導入腳本和所述導入條,得到所述導入作業。
32、進一步地,以使所述導入端etl調度集群根據所述導入條件,將所述子節點上的所述數據庫表導入至導入端數倉集群中,包括:
33、判斷所述導入端etl調度集群所執行的所有作業的所述資源消耗權值之和是否大于預設的資源消耗值上限;
34、若是,則等待資源釋放直至所有作業所占用的所述資源消耗權值之和小于等于所述資源消耗值上限;
35、若否,則根據所述第二檢查標識,判斷是否需要根據所述第二依賴關系執行所述導入作業;
36、若需要,則在所述第二依賴關系和所述頻度滿足后,將所述數據庫表從由所述邏輯權值確定出的子節點處導入至所述導入端數倉集群中;
37、若不需要,則根據所述第二檢查標識,判斷所述導出作業的優先級是否為最高等級;
38、若是,則直接執行所述導入作業;
39、若否,則在所述導入端的日常批量全部完成后,執行所述導入作業。
40、優選地,將所述子節點上的所述數據庫表導入至導入端數倉集群中,包括:
41、將所述數據庫表導入至預先建立的臨時庫臨時表中;
42、對源庫源表中的數據庫表和導入至所述臨時庫臨時表中的數據庫表進行一致性校驗;
43、當一致性校驗通過時,將數據庫表從所述臨時庫臨時表同步至目標庫目標表中。
44、具體地,所述方法還包括:
45、將監聽到的所述數據庫表所落入的導入端etl調度集群子節點的ip地址,記錄在數據同步任務的運行記錄中,以使所述導出端etl調度集群利用所述運行記錄對導出作業進行負載均衡。
46、第二方面,本說明書實施例提供一種跨工作流任務平臺的數據同步調度裝置,包括:
47、接收模塊,用于接收數據同步任務;
48、第一生成模塊,用于根據所述數據同步任務生成導出作業,所述導出作業包括所述導出作業的導出條件;
49、第一部署模塊,用于將所述導出作業部署至導出端etl調度集群上,以使所述導出端etl調度集群根據所述導出條件和負載均衡算法,將所述導出作業對應的數據庫表從導出端數倉集群中導出并落在導入端etl調度集群的子節點上;
50、監聽模塊,用于監聽所述數據庫表在所述導入端etl調度集群的子節點上的落入動作;
51、第二生成模塊,用于根據監聽結果和所述數據同步任務生成導入作業,所述導入作業包括導入條件;
52、第二部署模塊,用于將所述導入作業部署至導入端etl調度集群上,以使所述導入端etl調度集群根據所述導入條件,將所述子節點上的所述數據庫表導入至導入端數倉集群中。
53、第三方面,本說明書實施例提供一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現如上述技術方案提供的方法。
54、采用上述技術方案,本說明書實施例提供的一種跨工作流任務平臺的數據同步調度方法和裝置,將數據同步任務拆分為導出作業和導入作業兩個部分,分別部署至導出端etl調度集群和導入端etl調度集群上,以利用導出端etl調度集群和導入端etl調度集群的已有功能,節約了開發資源;且導出作業與導入作業相分離,不會影響導出端和導入端各自的日常批量作業的運行;此外,還利用數據同步調度服務集群作為總控,對導出端etl調度集群和導入端etl調度集群進行監控,使得導出作業與對應的導入作業相銜接,實現對數據同步任務狀態的流轉。
55、為讓本說明書實施例的上述和其他目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。