本發(fā)明涉及實(shí)時數(shù)據(jù)同步,具體涉及一種基于apache?flink?cdc的整庫實(shí)時數(shù)據(jù)同步方法以及一種基于apache?flink?cdc的整庫實(shí)時數(shù)據(jù)同步系統(tǒng)。
背景技術(shù):
1、本部分的陳述僅僅是提供了與本發(fā)明相關(guān)的背景技術(shù),并不必然構(gòu)成現(xiàn)有技術(shù)。
2、隨著大數(shù)據(jù)時代的到來,實(shí)時數(shù)據(jù)同步成為數(shù)據(jù)管理的關(guān)鍵技術(shù)之一。apacheflink作為流式計算框架,具有高性能、高吞吐量和低延遲的特點(diǎn),廣泛應(yīng)用于實(shí)時數(shù)據(jù)處理和分析領(lǐng)域。
3、然而,發(fā)明人發(fā)現(xiàn),現(xiàn)有的數(shù)據(jù)同步方法存在一些局限性,如使用flinksql提交同步任務(wù)時只能一次提交一個表的同步任務(wù),無法實(shí)現(xiàn)整庫的一次性同步;同時,提交多個同步任務(wù)后會占用flink的多個slot,影響系統(tǒng)的并發(fā)性能;此外,整庫同步可能還會占用大量的連接資源,導(dǎo)致資源浪費(fèi)和效率降低。
技術(shù)實(shí)現(xiàn)思路
1、為了解決現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種整庫實(shí)時數(shù)據(jù)同步方法及系統(tǒng),基于apache?flink?cdc實(shí)現(xiàn),實(shí)現(xiàn)了高效和靈活的整庫實(shí)時數(shù)據(jù)同步,提升了數(shù)據(jù)同步的效率和資源利用率。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
3、第一方面,本發(fā)明提供了一種整庫實(shí)時數(shù)據(jù)同步方法。
4、一種整庫實(shí)時數(shù)據(jù)同步方法,包括以下過程:
5、獲取選擇的通道信息,所述通道信息代表輸入源和輸出源之間的映射關(guān)系集合;
6、判斷各個任務(wù)的通道信息是否來源于一個數(shù)據(jù)源,如是,則將各個任務(wù)聚合為一個任務(wù);如否,則以輸入源的數(shù)據(jù)庫識別碼為主鍵進(jìn)行各個任務(wù)的聚合,得到聚合后的任務(wù);
7、以聚合后的任務(wù)進(jìn)行整庫實(shí)時數(shù)據(jù)同步。
8、作為本發(fā)明第一方面進(jìn)一步的限定,在整庫實(shí)時數(shù)據(jù)同步過程中,根據(jù)預(yù)置規(guī)則分析輸入源中的表結(jié)構(gòu)、字段類型及長度,推薦目標(biāo)數(shù)據(jù)庫的表結(jié)構(gòu),根據(jù)推薦的目標(biāo)數(shù)據(jù)庫的表結(jié)構(gòu),創(chuàng)建目標(biāo)數(shù)據(jù)庫的表。
9、作為本發(fā)明第一方面更進(jìn)一步的限定,目標(biāo)數(shù)據(jù)庫的表結(jié)構(gòu),包括字段名、數(shù)據(jù)類型和長度。
10、作為本發(fā)明第一方面進(jìn)一步的限定,分析輸入源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫之間的數(shù)據(jù)類型差異,根據(jù)數(shù)據(jù)類型差異,進(jìn)行字段映射配置推薦,識別字段類型轉(zhuǎn)換規(guī)則。
11、作為本發(fā)明第一方面進(jìn)一步的限定,使用kafka作為輸出源。
12、作為本發(fā)明第一方面更進(jìn)一步的限定,配置mysql作為數(shù)據(jù)同步的輸入源,配置kafka作為數(shù)據(jù)同步的輸出源,使得數(shù)據(jù)在輸入源和輸出源之間實(shí)現(xiàn)流轉(zhuǎn)和序列化;
13、數(shù)據(jù)同步任務(wù)被提交后,根據(jù)配置信息生成相應(yīng)的任務(wù)執(zhí)行計劃;
14、提交配置好的數(shù)據(jù)同步任務(wù),根據(jù)任務(wù)配置生成并執(zhí)行數(shù)據(jù)同步流程;
15、利用kafka進(jìn)行數(shù)據(jù)流的分發(fā)和處理,支持并發(fā)訂閱數(shù)據(jù)流。
16、第二方面,本發(fā)明提供了一種整庫實(shí)時數(shù)據(jù)同步系統(tǒng)。
17、一種整庫實(shí)時數(shù)據(jù)同步系統(tǒng),包括:
18、通道選擇單元,被配置為:獲取選擇的通道信息,所述通道信息代表輸入源和輸出源之間的映射關(guān)系集合;
19、任務(wù)聚合單元,被配置為:判斷各個任務(wù)的通道信息是否來源于一個數(shù)據(jù)源,如是,則將各個任務(wù)聚合為一個任務(wù);如否,則以輸入源的數(shù)據(jù)庫識別碼為主鍵進(jìn)行各個任務(wù)的聚合,得到聚合后的任務(wù);
20、整庫同步單元,被配置為:以聚合后的任務(wù)進(jìn)行整庫實(shí)時數(shù)據(jù)同步。
21、第三方面,本發(fā)明提供了一種整庫實(shí)時數(shù)據(jù)同步系統(tǒng)。
22、一種整庫實(shí)時數(shù)據(jù)同步系統(tǒng),包括:
23、任務(wù)分類模塊、cdc源管理模塊、通道管理模塊、實(shí)時任務(wù)模塊、消息隊列模塊和任務(wù)監(jiān)控模塊;
24、任務(wù)分類模塊,用于對實(shí)時同步任務(wù)進(jìn)行分類管理;
25、cdc源管理模塊,用于支持多種數(shù)據(jù)庫數(shù)據(jù)源的同步,通過系統(tǒng)提供的界面進(jìn)行cdc源的配置,配置過程包括數(shù)據(jù)庫類型選擇、輸入連接信息和權(quán)限驗(yàn)證;
26、通道管理模塊,用于根據(jù)不同庫字段類型,根據(jù)預(yù)置規(guī)則自動識別并轉(zhuǎn)換不同數(shù)據(jù)庫系統(tǒng)中的字段類型進(jìn)行推薦匹配同步字段,支持用戶手動改變數(shù)據(jù)映射規(guī)則,將源數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)類型映射到目標(biāo)數(shù)據(jù)庫;
27、實(shí)時任務(wù)模塊,用于任務(wù)的創(chuàng)建、監(jiān)控和調(diào)度的實(shí)時管理,通過系統(tǒng)界面創(chuàng)建數(shù)據(jù)同步任務(wù),并監(jiān)控任務(wù)的執(zhí)行狀態(tài)和性能指標(biāo);
28、任務(wù)監(jiān)控模塊,用于實(shí)時監(jiān)控數(shù)據(jù)流的狀態(tài)和性能,包括讀取量、寫入量、讀取速率、寫入速率,當(dāng)數(shù)據(jù)同步過程中出現(xiàn)異常情況時通過預(yù)設(shè)的告警機(jī)制生成告警信息;
29、消息隊列模塊,用于使得系統(tǒng)支持kafka作為輸入源和輸出源,處理不同格式的數(shù)據(jù)進(jìn)行同步。
30、第四方面,本發(fā)明提供了一種計算機(jī)設(shè)備,包括:處理器和計算機(jī)可讀存儲介質(zhì);
31、處理器,適于執(zhí)行計算機(jī)程序;
32、計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)中存儲有計算機(jī)程序,所述計算機(jī)程序被所述處理器執(zhí)行時,實(shí)現(xiàn)如本發(fā)明第一方面所述的整庫實(shí)時數(shù)據(jù)同步方法。
33、第五方面,本發(fā)明提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序,所述計算機(jī)程序適于被處理器加載并執(zhí)行如本發(fā)明第一方面所述的整庫實(shí)時數(shù)據(jù)同步方法。
34、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
35、本發(fā)明創(chuàng)新的提出了一種基于apache?flink?cdc的整庫實(shí)時數(shù)據(jù)同步方法及系統(tǒng),解決了flinksql只能一次提交一個表的同步任務(wù)、提交多個任務(wù)后占用flink的多個slot、以及整庫同步占用多個連接的問題,實(shí)現(xiàn)了高效和靈活的整庫實(shí)時數(shù)據(jù)同步,提升了數(shù)據(jù)同步的效率和資源利用率。
36、本發(fā)明附加方面的優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
1.一種整庫實(shí)時數(shù)據(jù)同步方法,其特征在于,包括以下過程:
2.如權(quán)利要求1所述的整庫實(shí)時數(shù)據(jù)同步方法,其特征在于,
3.如權(quán)利要求2所述的整庫實(shí)時數(shù)據(jù)同步方法,其特征在于,
4.如權(quán)利要求1所述的整庫實(shí)時數(shù)據(jù)同步方法,其特征在于,
5.如權(quán)利要求1所述的整庫實(shí)時數(shù)據(jù)同步方法,其特征在于,
6.如權(quán)利要求5所述的整庫實(shí)時數(shù)據(jù)同步方法,其特征在于,
7.一種整庫實(shí)時數(shù)據(jù)同步系統(tǒng),其特征在于,包括:
8.一種整庫實(shí)時數(shù)據(jù)同步系統(tǒng),其特征在于,包括:
9.一種計算機(jī)設(shè)備,其特征在于,包括:處理器和計算機(jī)可讀存儲介質(zhì);
10.一種計算機(jī)可讀存儲介質(zhì),其特征在于,所述計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序,所述計算機(jī)程序適于被處理器加載并執(zhí)行如權(quán)利要求1-6任一項所述的整庫實(shí)時數(shù)據(jù)同步方法。