亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)同步方法、裝置、設(shè)備及介質(zhì)與流程

文檔序號:40394434發(fā)布日期:2024-12-20 12:17閱讀:5來源:國知局
一種數(shù)據(jù)同步方法、裝置、設(shè)備及介質(zhì)與流程

本發(fā)明涉及數(shù)據(jù)同步領(lǐng)域,特別涉及一種數(shù)據(jù)同步方法、裝置、設(shè)備及介質(zhì)。


背景技術(shù):

1、在當(dāng)前的數(shù)據(jù)業(yè)務(wù)中,數(shù)據(jù)均持久化存儲于各業(yè)務(wù)系統(tǒng)的mysql數(shù)據(jù)庫中??紤]到mysql數(shù)據(jù)庫的局限性,需要將mysql數(shù)據(jù)庫中的數(shù)據(jù)同步至其他數(shù)據(jù)庫,以滿足不同應(yīng)用場景的使用,例如同步到hive、tidb、kudu、hbase、elasticsearch等數(shù)據(jù)庫中。

2、而在數(shù)據(jù)同步的過程中常涉及到數(shù)據(jù)過濾機制,目前的數(shù)據(jù)過濾機制通常為在canal服務(wù)端的啟動配置文件中配置數(shù)據(jù)過濾名單,以基于數(shù)據(jù)過濾名單對從mysql數(shù)據(jù)庫中獲取的數(shù)據(jù)進(jìn)行過濾,然后將過濾后的數(shù)據(jù)同步至其他數(shù)據(jù)庫。但如需對數(shù)據(jù)過濾名單進(jìn)行變更,由于數(shù)據(jù)過濾名單存儲于canal服務(wù)端的啟動配置文件中,因此在數(shù)據(jù)過濾名單變更后需要重啟canal服務(wù)端,或者增加部署用于為canal中間件提供整體配置管理和節(jié)點運維等功能的canal-admin,以通過canal-admin對數(shù)據(jù)過濾名單進(jìn)行重加載配置。然而上述兩種方式都是重量級操作,在重啟或重加載配置的過程中會嚴(yán)重影響到數(shù)據(jù)的同步,并且canal服務(wù)端在實際的工作中需要穩(wěn)定運行,很少會重啟。因此,如何在不需要重啟canal服務(wù)端的情況下,實現(xiàn)數(shù)據(jù)的同步是目前有待解決的問題。


技術(shù)實現(xiàn)思路

1、有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)同步方法、裝置、設(shè)備及介質(zhì),能夠在不需要重啟canal服務(wù)端的情況下實現(xiàn)對數(shù)據(jù)同步過濾文件的動態(tài)變更,并且實現(xiàn)對不同下游數(shù)據(jù)庫系統(tǒng)的差異化數(shù)據(jù)同步。其具體方案如下:

2、第一方面,本技術(shù)提供了一種數(shù)據(jù)同步方法,應(yīng)用于集成有若干canal客戶端的數(shù)據(jù)同步服務(wù),不同的canal客戶端對應(yīng)不同的下游數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)同步過濾文件;其中,所述方法包括:

3、在將預(yù)設(shè)持久化存儲中與任一canal客戶端對應(yīng)的目標(biāo)數(shù)據(jù)同步過濾文件加載至本地的預(yù)設(shè)內(nèi)存中之后,基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以得到過濾后數(shù)據(jù);其中,所述服務(wù)端隊列中的數(shù)據(jù)為所述canal服務(wù)端從上游數(shù)據(jù)庫系統(tǒng)中獲取的數(shù)據(jù);

4、將所述過濾后數(shù)據(jù)發(fā)送至所述任一canal客戶端對應(yīng)的目標(biāo)客戶端隊列中進(jìn)行存儲,以便所述任一canal客戶端將所述目標(biāo)客戶端隊列中存儲的數(shù)據(jù)同步至所述任一canal客戶端對應(yīng)的目標(biāo)下游數(shù)據(jù)庫系統(tǒng);

5、若通過文件配置頁面中的第一預(yù)設(shè)接口獲取到針對所述目標(biāo)數(shù)據(jù)同步過濾文件的變更請求,則基于所述變更請求對所述預(yù)設(shè)持久化存儲中的所述目標(biāo)數(shù)據(jù)同步過濾文件進(jìn)行變更,并將變更后的數(shù)據(jù)同步過濾文件重新加載至所述預(yù)設(shè)內(nèi)存中,以便基于所述變更后的數(shù)據(jù)同步過濾文件對所述待同步數(shù)據(jù)進(jìn)行過濾。

6、可選的,所述基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,包括:

7、通過所述任一canal客戶端在所述數(shù)據(jù)同步服務(wù)中創(chuàng)建的目標(biāo)對象從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取待同步數(shù)據(jù),并基于所述目標(biāo)數(shù)據(jù)同步過濾文件對所述待同步數(shù)據(jù)進(jìn)行過濾。

8、可選的,所述通過所述任一canal客戶端在所述數(shù)據(jù)同步服務(wù)中創(chuàng)建的目標(biāo)對象從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取待同步數(shù)據(jù)之前,還包括:

9、調(diào)用所述任一canal客戶端的第二預(yù)設(shè)接口在所述數(shù)據(jù)同步服務(wù)中創(chuàng)建相應(yīng)的所述目標(biāo)對象;其中,不同的canal客戶端對應(yīng)不同的對象。

10、可選的,所述服務(wù)端隊列中的數(shù)據(jù)為所述canal服務(wù)端發(fā)送至所述服務(wù)端隊列進(jìn)行存儲的數(shù)據(jù);所述canal服務(wù)端發(fā)送至所述服務(wù)端隊列進(jìn)行存儲的數(shù)據(jù)為所述canal服務(wù)端對所述上游數(shù)據(jù)庫系統(tǒng)發(fā)送的數(shù)據(jù)變更日志進(jìn)行解析后得到的數(shù)據(jù);所述數(shù)據(jù)變更日志為所述上游數(shù)據(jù)庫系統(tǒng)在接收到所述canal服務(wù)端發(fā)送的日志請求時基于主從同步機制同步至所述canal服務(wù)端的日志。

11、可選的,所述基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以得到過濾后數(shù)據(jù),包括:

12、基于所述目標(biāo)數(shù)據(jù)同步過濾文件中的數(shù)據(jù)白名單對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以從所述待同步數(shù)據(jù)中確定出與所述數(shù)據(jù)白名單對應(yīng)的過濾后數(shù)據(jù);

13、其中,所述數(shù)據(jù)白名單包括數(shù)據(jù)庫白名單、數(shù)據(jù)表白名單和數(shù)據(jù)字段白名單中的任意一種或幾種的組合。

14、可選的,所述基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以得到過濾后數(shù)據(jù),包括:

15、基于所述目標(biāo)數(shù)據(jù)同步過濾文件中的數(shù)據(jù)黑名單對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以從所述待同步數(shù)據(jù)中刪除與所述數(shù)據(jù)黑名單對應(yīng)的數(shù)據(jù),并基于所述待同步數(shù)據(jù)中的剩余數(shù)據(jù)確定過濾后數(shù)據(jù);

16、其中,所述數(shù)據(jù)黑名單包括數(shù)據(jù)庫黑名單、數(shù)據(jù)表黑名單和數(shù)據(jù)字段黑名單中的任意一種或幾種的組合。

17、可選的,所述基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以得到過濾后數(shù)據(jù),包括:

18、從所述canal服務(wù)端對應(yīng)的所述服務(wù)端隊列中獲取所述待同步數(shù)據(jù),若所述待同步數(shù)據(jù)的數(shù)量為多個,則將所述待同步數(shù)據(jù)中的第一個數(shù)據(jù)確定為當(dāng)前待同步數(shù)據(jù),并基于所述目標(biāo)數(shù)據(jù)同步過濾文件對所述當(dāng)前待同步數(shù)據(jù)進(jìn)行過濾,以得到當(dāng)前過濾后數(shù)據(jù),以便將所述當(dāng)前過濾后數(shù)據(jù)發(fā)送至所述目標(biāo)客戶端隊列中進(jìn)行存儲;

19、判斷所述當(dāng)前待同步數(shù)據(jù)是否為所述待同步數(shù)據(jù)中的最后一個數(shù)據(jù),若否,則將所述待同步數(shù)據(jù)中的下一個數(shù)據(jù)確定為新的當(dāng)前待同步數(shù)據(jù),并重新跳轉(zhuǎn)至所述基于所述目標(biāo)數(shù)據(jù)同步過濾文件對所述當(dāng)前待同步數(shù)據(jù)進(jìn)行過濾的步驟,直至所述當(dāng)前待同步數(shù)據(jù)為所述待同步數(shù)據(jù)中的最后一個數(shù)據(jù),然后從所述服務(wù)端隊列中獲取新的待同步數(shù)據(jù)。

20、第二方面,本技術(shù)提供了一種數(shù)據(jù)同步裝置,應(yīng)用于集成有若干canal客戶端的數(shù)據(jù)同步服務(wù),不同的canal客戶端對應(yīng)不同的下游數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)同步過濾文件;其中,所述裝置包括:

21、數(shù)據(jù)過濾模塊,用于在將預(yù)設(shè)持久化存儲中與任一canal客戶端對應(yīng)的目標(biāo)數(shù)據(jù)同步過濾文件加載至本地的預(yù)設(shè)內(nèi)存中之后,基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以得到過濾后數(shù)據(jù);其中,所述服務(wù)端隊列中的數(shù)據(jù)為所述canal服務(wù)端從上游數(shù)據(jù)庫系統(tǒng)中獲取的數(shù)據(jù);

22、數(shù)據(jù)同步模塊,用于將所述過濾后數(shù)據(jù)發(fā)送至所述任一canal客戶端對應(yīng)的目標(biāo)客戶端隊列中進(jìn)行存儲,以便所述任一canal客戶端將所述目標(biāo)客戶端隊列中存儲的數(shù)據(jù)同步至所述任一canal客戶端對應(yīng)的目標(biāo)下游數(shù)據(jù)庫系統(tǒng);

23、文件變更模塊,用于若通過文件配置頁面中的第一預(yù)設(shè)接口獲取到針對所述目標(biāo)數(shù)據(jù)同步過濾文件的變更請求,則基于所述變更請求對所述預(yù)設(shè)持久化存儲中的所述目標(biāo)數(shù)據(jù)同步過濾文件進(jìn)行變更,并將變更后的數(shù)據(jù)同步過濾文件重新加載至所述預(yù)設(shè)內(nèi)存中,以便基于所述變更后的數(shù)據(jù)同步過濾文件對所述待同步數(shù)據(jù)進(jìn)行過濾。

24、第三方面,本技術(shù)提供了一種電子設(shè)備,包括:

25、存儲器,用于保存計算機程序;

26、處理器,用于執(zhí)行所述計算機程序以實現(xiàn)前述的數(shù)據(jù)同步方法。

27、第四方面,本技術(shù)提供了一種計算機可讀存儲介質(zhì),用于保存計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)前述的數(shù)據(jù)同步方法。

28、本技術(shù)的數(shù)據(jù)同步方法應(yīng)用于集成有若干canal客戶端的數(shù)據(jù)同步服務(wù),不同的canal客戶端對應(yīng)不同的下游數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)同步過濾文件;其中,所述方法包括:在將預(yù)設(shè)持久化存儲中與任一canal客戶端對應(yīng)的目標(biāo)數(shù)據(jù)同步過濾文件加載至本地的預(yù)設(shè)內(nèi)存中之后,基于所述目標(biāo)數(shù)據(jù)同步過濾文件對從canal服務(wù)端對應(yīng)的服務(wù)端隊列中獲取的待同步數(shù)據(jù)進(jìn)行過濾,以得到過濾后數(shù)據(jù);其中,所述服務(wù)端隊列中的數(shù)據(jù)為所述canal服務(wù)端從上游數(shù)據(jù)庫系統(tǒng)中獲取的數(shù)據(jù);將所述過濾后數(shù)據(jù)發(fā)送至所述任一canal客戶端對應(yīng)的目標(biāo)客戶端隊列中進(jìn)行存儲,以便所述任一canal客戶端將所述目標(biāo)客戶端隊列中存儲的數(shù)據(jù)同步至所述任一canal客戶端對應(yīng)的目標(biāo)下游數(shù)據(jù)庫系統(tǒng);若通過文件配置頁面中的第一預(yù)設(shè)接口獲取到針對所述目標(biāo)數(shù)據(jù)同步過濾文件的變更請求,則基于所述變更請求對所述預(yù)設(shè)持久化存儲中的所述目標(biāo)數(shù)據(jù)同步過濾文件進(jìn)行變更,并將變更后的數(shù)據(jù)同步過濾文件重新加載至所述預(yù)設(shè)內(nèi)存中,以便基于所述變更后的數(shù)據(jù)同步過濾文件對所述待同步數(shù)據(jù)進(jìn)行過濾。由此可見,本技術(shù)通過預(yù)先將數(shù)據(jù)同步過濾文件存儲到持久化存儲中,以在基于預(yù)先集成有若干canal客戶端的數(shù)據(jù)同步服務(wù)進(jìn)行數(shù)據(jù)同步時,通過將持久化存儲中的數(shù)據(jù)同步過濾文件加載至數(shù)據(jù)同步服務(wù)的本地內(nèi)存中,以便數(shù)據(jù)同步服務(wù)可以基于本地內(nèi)存中的數(shù)據(jù)同步過濾文件進(jìn)行數(shù)據(jù)過濾,這樣一來,通過將數(shù)據(jù)過濾操作從原本的canal服務(wù)端遷移至集成有若干canal客戶端的數(shù)據(jù)同步服務(wù),可以降低對canal服務(wù)端的資源消耗;并且,在數(shù)據(jù)同步過濾文件需要變更時,只需通過數(shù)據(jù)同步服務(wù)提供的文件配置頁面中的預(yù)設(shè)接口獲取文件變更請求,便可以實現(xiàn)對持久化存儲中的數(shù)據(jù)同步過濾文件的變更,然后將變更后的數(shù)據(jù)同步過濾文件重新加載至數(shù)據(jù)同步服務(wù)的本地內(nèi)存中,這樣一來,可以在不需要重啟canal服務(wù)端的情況下實現(xiàn)對數(shù)據(jù)同步過濾文件的動態(tài)變更,并且可以基于變更后的數(shù)據(jù)同步過濾文件繼續(xù)對數(shù)據(jù)進(jìn)行過濾。進(jìn)一步的,由于本技術(shù)中的不同canal客戶端對應(yīng)于不同下游數(shù)據(jù)庫系統(tǒng)以及不同數(shù)據(jù)同步過濾文件,從而可以通過不同的數(shù)據(jù)同步過濾文件實現(xiàn)對不同下游數(shù)據(jù)庫系統(tǒng)的差異化數(shù)據(jù)同步。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1