日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

數(shù)據(jù)同步方法、裝置、電子設(shè)備、存儲介質(zhì)

文檔序號:39329704發(fā)布日期:2024-09-10 11:36閱讀:15來源:國知局
數(shù)據(jù)同步方法、裝置、電子設(shè)備、存儲介質(zhì)

本技術(shù)涉及但不限于計(jì)算機(jī),尤其涉及一種數(shù)據(jù)同步方法、系統(tǒng)、電子設(shè)備、存儲介質(zhì)。


背景技術(shù):

1、數(shù)據(jù)倉庫需要從不同類型的數(shù)據(jù)源中提取數(shù)據(jù),經(jīng)過清洗、轉(zhuǎn)換和整合后,存儲在一個(gè)統(tǒng)一的位置,這一過程稱為數(shù)據(jù)倉庫的etl(extract-transform-load,抽取-轉(zhuǎn)換-加載)過程。在etl過程中,當(dāng)業(yè)務(wù)變更導(dǎo)致上游表結(jié)構(gòu)更新,需要先暫停etl進(jìn)程,將下游表的結(jié)構(gòu)修改為與上游源表結(jié)構(gòu)一致的最新結(jié)構(gòu),再恢復(fù)etl進(jìn)程,并且在etl停止期間,上游表和下游表都必須暫停服務(wù),無法正常提供服務(wù);并且,如果由于業(yè)務(wù)需求而經(jīng)常需要調(diào)整表結(jié)構(gòu),則需要反復(fù)停止數(shù)據(jù)同步,從而帶來巨大的運(yùn)維成本。


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

1、本技術(shù)實(shí)施例提供了一種數(shù)據(jù)同步方法、系統(tǒng)、電子設(shè)備、存儲介質(zhì),能夠使得系統(tǒng)在不中斷etl過程的前提下實(shí)現(xiàn)表結(jié)構(gòu)變更的數(shù)據(jù)同步,保障系統(tǒng)正常服務(wù)功能的同時(shí)降低系統(tǒng)運(yùn)維成本。

2、第一方面,本技術(shù)實(shí)施例提供了一種數(shù)據(jù)同步方法,應(yīng)用于數(shù)據(jù)同步系統(tǒng),所述數(shù)據(jù)同步系統(tǒng)包括上游數(shù)據(jù)庫、第一消息集成模塊、模式注冊中心、消息隊(duì)列、第二消息集成模塊和下游數(shù)據(jù)庫,所述方法包括:

3、所述第一消息集成模塊從所述上游數(shù)據(jù)庫中集成上游數(shù)據(jù),當(dāng)檢測到所述上游數(shù)據(jù)庫的表結(jié)構(gòu)發(fā)生變更,獲取變更后的表結(jié)構(gòu)對應(yīng)的第一模式信息,并將所述第一模式信息注冊到所述模式注冊中心,其中,所述第一模式信息用于描述所述變更后的表結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu);

4、所述第一消息集成模塊序列化所述上游數(shù)據(jù)得到第一消息記錄,并將所述第一消息記錄保存至所述消息隊(duì)列,其中,所述第一消息記錄攜帶有第一模式標(biāo)識,所述第一模式標(biāo)識用于唯一標(biāo)識所述第一消息記錄對應(yīng)的所述上游數(shù)據(jù)庫的表結(jié)構(gòu)的第一模式信息,所述消息隊(duì)列中還包括排序位于所述第一消息記錄之前的第二消息記錄,所述第二消息記錄攜帶有表結(jié)構(gòu)變更前的模式標(biāo)識;

5、當(dāng)所述第二消息集成模塊監(jiān)聽到所述模式注冊中心注冊了新的模式信息,從所述模式注冊中心中獲取所述第一模式信息,將所述第一模式信息保存至模式隊(duì)列,其中,所述第一模式信息為所述模式注冊中心中注冊時(shí)長最短的模式信息,所述模式隊(duì)列中還包括排序位于所述第一模式信息之前的第二模式信息;

6、所述第二消息集成模塊從所述消息隊(duì)列中獲取攜帶有參考模式標(biāo)識的參考消息記錄,從所述模式隊(duì)列中獲取與所述參考模式標(biāo)識對應(yīng)的目標(biāo)模式信息,其中,所述參考消息記錄為所述第一消息記錄或所述第二消息記錄;

7、所述第二消息集成模塊基于所述目標(biāo)模式信息解析所述參考消息記錄,得到目標(biāo)dml語句,其中,所述目標(biāo)dml語句用于修改所述下游數(shù)據(jù)庫中的數(shù)據(jù);

8、所述第二消息集成模塊基于所述目標(biāo)模式信息生成目標(biāo)ddl語句,其中,所述目標(biāo)ddl語句用于修改所述下游數(shù)據(jù)庫的表結(jié)構(gòu);

9、所述第二消息集成模塊將所述目標(biāo)dml語句或所述目標(biāo)ddl語句發(fā)送至所述下游數(shù)據(jù)庫;

10、所述下游數(shù)據(jù)庫執(zhí)行所述目標(biāo)dml語句,完成與所述上游數(shù)據(jù)庫的數(shù)據(jù)同步,或執(zhí)行所述目標(biāo)ddl語句,完成與所述上游數(shù)據(jù)庫的表結(jié)構(gòu)變更同步。

11、在一些實(shí)施例中,所述第二消息集成模塊從所述消息隊(duì)列中獲取攜帶有參考模式標(biāo)識的參考消息記錄,從所述模式隊(duì)列中獲取與所述參考模式標(biāo)識對應(yīng)的目標(biāo)模式信息,包括:

12、獲取所述模式隊(duì)列中位于隊(duì)頭位置的參考模式信息;

13、當(dāng)所述參考模式信息與所述參考模式標(biāo)識不對應(yīng),刪除所述模式隊(duì)列中的所述參考模式信息,重新獲取所述模式隊(duì)列中位于隊(duì)頭位置的新的參考模式信息,直至所述新的參考模式信息與所述參考模式標(biāo)識相對應(yīng),將所述新的參考模式信息確定為所述目標(biāo)模式信息。

14、在一些實(shí)施例中,所述第二消息集成模塊從所述消息隊(duì)列中獲取攜帶有參考模式標(biāo)識的參考消息記錄,從所述模式隊(duì)列中獲取與所述參考模式標(biāo)識對應(yīng)的目標(biāo)模式信息,包括:

15、獲取所述模式隊(duì)列中位于隊(duì)頭位置的參考模式信息;

16、當(dāng)所述參考模式信息為所述模式隊(duì)列中唯一的模式信息,并且所述參考模式信息與所述參考模式標(biāo)識不對應(yīng),丟棄所述參考消息記錄和所述參考模式信息,不提交消費(fèi)偏移量至所述消息隊(duì)列;

17、當(dāng)獲取到所述模式隊(duì)列中位于隊(duì)頭位置的新的參考模式信息,并且所述新的參考模式信息與所述參考模式標(biāo)識相對應(yīng),提交所述消費(fèi)偏移量至所述消息隊(duì)列,并將所述新的參考模式信息確定為所述目標(biāo)模式信息。

18、在一些實(shí)施例中,所述第二消息集成模塊還包括反序列化器、sql構(gòu)造器和模式解析器,所述第二消息集成模塊基于所述目標(biāo)模式信息解析所述參考消息記錄,得到目標(biāo)dml語句,包括:

19、所述反序列化器基于所述目標(biāo)模式信息對所述參考消息記錄進(jìn)行反序列化,得到中間消息記錄,并將所述中間消息記錄發(fā)送至所述sql構(gòu)造器;

20、所述sql構(gòu)造器基于所述中間消息記錄生成所述目標(biāo)dml語句;

21、所述第二消息集成模塊基于所述目標(biāo)模式信息生成目標(biāo)ddl語句,包括:

22、所述模式解析器基于所述目標(biāo)模式信息和預(yù)設(shè)的數(shù)據(jù)類型映射表得到目標(biāo)數(shù)據(jù)映射關(guān)系,其中,所述目標(biāo)數(shù)據(jù)映射關(guān)系用于指示所述目標(biāo)模式信息分別與所述上游數(shù)據(jù)庫對應(yīng)的表字段類型和所述下游數(shù)據(jù)庫對應(yīng)的表字段類型之間的映射關(guān)系;

23、所述模式解析器基于所述目標(biāo)模式信息和預(yù)設(shè)的表結(jié)構(gòu)緩存空間中的參考表結(jié)構(gòu)得到目標(biāo)變更信息,其中,所述參考表結(jié)構(gòu)為當(dāng)前所述下游數(shù)據(jù)庫的表結(jié)構(gòu);

24、所述模式解析器將所述目標(biāo)數(shù)據(jù)映射關(guān)系和所述目標(biāo)變更信息發(fā)送至所述sql構(gòu)造器;

25、所述sql構(gòu)造器基于所述目標(biāo)數(shù)據(jù)映射關(guān)系和所述目標(biāo)變更信息生成所述目標(biāo)ddl語句。

26、第二方面,本技術(shù)實(shí)施例還提供了一種數(shù)據(jù)同步系統(tǒng),所述數(shù)據(jù)同步系統(tǒng)包括上游數(shù)據(jù)庫、第一消息集成模塊、模式注冊中心、消息隊(duì)列、第二消息集成模塊和下游數(shù)據(jù)庫,所述第一消息集成模塊包括第一數(shù)據(jù)處理模塊和第二數(shù)據(jù)處理模塊,所述第二消息集成模塊包括第三數(shù)據(jù)處理模塊、第四數(shù)據(jù)處理模塊和第五數(shù)據(jù)處理模塊;

27、所述第一數(shù)據(jù)處理模塊用于從所述上游數(shù)據(jù)庫中集成上游數(shù)據(jù),當(dāng)檢測到所述上游數(shù)據(jù)庫的表結(jié)構(gòu)發(fā)生變更,獲取變更后的表結(jié)構(gòu)對應(yīng)的第一模式信息,并將所述第一模式信息注冊到所述模式注冊中心,其中,所述第一模式信息用于描述所述變更后的表結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu);

28、所述第二數(shù)據(jù)處理模塊用于序列化所述上游數(shù)據(jù)得到第一消息記錄,并將所述第一消息記錄保存至所述消息隊(duì)列,其中,所述第一消息記錄攜帶有第一模式標(biāo)識,所述第一模式標(biāo)識用于唯一標(biāo)識所述第一消息記錄對應(yīng)的所述上游數(shù)據(jù)庫的表結(jié)構(gòu)的第一模式信息,所述消息隊(duì)列中還包括排序位于所述第一消息記錄之前的第二消息記錄,所述第二消息記錄攜帶有表結(jié)構(gòu)變更前的模式標(biāo)識;

29、所述第三數(shù)據(jù)處理模塊用于當(dāng)監(jiān)聽到所述模式注冊中心注冊了新的模式信息,從所述模式注冊中心中獲取所述第一模式信息,將所述第一模式信息保存至模式隊(duì)列,其中,所述第一模式信息為所述模式注冊中心中注冊時(shí)長最短的模式信息,所述模式隊(duì)列中還包括排序位于所述第一模式信息之前的第二模式信息;

30、所述第四數(shù)據(jù)處理模塊用于從所述消息隊(duì)列中獲取攜帶有參考模式標(biāo)識的參考消息記錄,從所述模式隊(duì)列中獲取與所述參考模式標(biāo)識對應(yīng)的目標(biāo)模式信息,其中,所述參考消息記錄為所述第一消息記錄或所述第二消息記錄;

31、所述第五數(shù)據(jù)處理模塊用于基于所述目標(biāo)模式信息解析所述參考消息記錄,得到目標(biāo)dml語句,基于所述目標(biāo)模式信息生成目標(biāo)ddl語句,并將所述目標(biāo)dml語句或所述目標(biāo)ddl語句發(fā)送至所述下游數(shù)據(jù)庫,其中,所述目標(biāo)dml語句用于修改所述下游數(shù)據(jù)庫中的數(shù)據(jù),所述目標(biāo)ddl語句用于修改所述下游數(shù)據(jù)庫的表結(jié)構(gòu);

32、所述下游數(shù)據(jù)庫用于執(zhí)行所述目標(biāo)dml語句,完成與所述上游數(shù)據(jù)庫的數(shù)據(jù)同步,或執(zhí)行所述目標(biāo)ddl語句,完成與所述上游數(shù)據(jù)庫的表結(jié)構(gòu)變更同步。

33、在一些實(shí)施例中,所述第四數(shù)據(jù)處理模塊包括:

34、第一數(shù)據(jù)獲取模塊,用于獲取所述模式隊(duì)列中位于隊(duì)頭位置的參考模式信息;

35、第一目標(biāo)模式信息確定模塊,用于當(dāng)所述參考模式信息與所述參考模式標(biāo)識不對應(yīng),刪除所述模式隊(duì)列中的所述參考模式信息,重新獲取所述模式隊(duì)列中位于隊(duì)頭位置的新的參考模式信息,直至所述新的參考模式信息與所述參考模式標(biāo)識相對應(yīng),將所述新的參考模式信息確定為所述目標(biāo)模式信息。

36、在一些實(shí)施例中,所述第四數(shù)據(jù)處理模塊包括:

37、第二數(shù)據(jù)獲取模塊,用于獲取所述模式隊(duì)列中位于隊(duì)頭位置的參考模式信息;

38、第六數(shù)據(jù)處理模塊,用于當(dāng)所述參考模式信息為所述模式隊(duì)列中唯一的模式信息,并且所述參考模式信息與所述參考模式標(biāo)識不對應(yīng),丟棄所述參考消息記錄和所述參考模式信息,不提交消費(fèi)偏移量至所述消息隊(duì)列;

39、第二目標(biāo)模式信息確定模塊,用于當(dāng)獲取到所述模式隊(duì)列中位于隊(duì)頭位置的新的參考模式信息,并且所述新的參考模式信息與所述參考模式標(biāo)識相對應(yīng),提交所述消費(fèi)偏移量至所述消息隊(duì)列,并將所述新的參考模式信息確定為所述目標(biāo)模式信息。

40、在一些實(shí)施例中,所述第二消息集成模塊還包括反序列化器、sql構(gòu)造器和模式解析器,所述模式解析器包括映射關(guān)系確定模塊、變更信息獲取模塊和數(shù)據(jù)發(fā)送模塊;

41、所述反序列化器用于基于所述目標(biāo)模式信息對所述參考消息記錄進(jìn)行反序列化,得到中間消息記錄,并將所述中間消息記錄發(fā)送至所述sql構(gòu)造器;

42、所述映射關(guān)系確定模塊用于基于所述目標(biāo)模式信息和預(yù)設(shè)的數(shù)據(jù)類型映射表得到目標(biāo)數(shù)據(jù)映射關(guān)系,其中,所述目標(biāo)數(shù)據(jù)映射關(guān)系用于指示所述目標(biāo)模式信息分別與所述上游數(shù)據(jù)庫對應(yīng)的表字段類型和所述下游數(shù)據(jù)庫對應(yīng)的表字段類型之間的映射關(guān)系;

43、所述變更信息獲取模塊用于基于所述目標(biāo)模式信息和預(yù)設(shè)的表結(jié)構(gòu)緩存空間中的參考表結(jié)構(gòu)得到目標(biāo)變更信息,其中,所述參考表結(jié)構(gòu)為當(dāng)前所述下游數(shù)據(jù)庫的表結(jié)構(gòu);

44、所述數(shù)據(jù)發(fā)送模塊用于將所述目標(biāo)數(shù)據(jù)映射關(guān)系和所述目標(biāo)變更信息發(fā)送至所述sql構(gòu)造器;

45、所述sql構(gòu)造器用于基于所述中間消息記錄生成所述目標(biāo)dml語句,以及基于所述目標(biāo)數(shù)據(jù)映射關(guān)系和所述目標(biāo)變更信息生成所述目標(biāo)ddl語句。

46、第三方面,本技術(shù)實(shí)施例提供了一種電子設(shè)備,包括至少一個(gè)控制處理器和用于與所述至少一個(gè)控制處理器通信連接的存儲器;所述存儲器存儲有可被所述至少一個(gè)控制處理器執(zhí)行的指令,所述指令被所述至少一個(gè)控制處理器執(zhí)行,以使所述至少一個(gè)控制處理器能夠執(zhí)行如第一方面所述的數(shù)據(jù)同步方法。

47、第四方面,本技術(shù)實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),存儲有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行如第一方面所述的數(shù)據(jù)同步方法。

48、本技術(shù)實(shí)施例提供了一種數(shù)據(jù)同步方法、系統(tǒng)、電子設(shè)備、存儲介質(zhì),方法包括:所述第一消息集成模塊從所述上游數(shù)據(jù)庫中集成上游數(shù)據(jù),當(dāng)檢測到所述上游數(shù)據(jù)庫的表結(jié)構(gòu)發(fā)生變更,獲取變更后的表結(jié)構(gòu)對應(yīng)的第一模式信息,并將所述第一模式信息注冊到所述模式注冊中心,其中,所述第一模式信息用于描述所述變更后的表結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu);所述第一消息集成模塊序列化所述上游數(shù)據(jù)得到第一消息記錄,并將所述第一消息記錄保存至所述消息隊(duì)列,其中,所述第一消息記錄攜帶有第一模式標(biāo)識,所述第一模式標(biāo)識用于唯一標(biāo)識所述第一消息記錄對應(yīng)的所述上游數(shù)據(jù)庫的表結(jié)構(gòu)的第一模式信息,所述消息隊(duì)列中還包括排序位于所述第一消息記錄之前的第二消息記錄,所述第二消息記錄攜帶有表結(jié)構(gòu)變更前的模式標(biāo)識;當(dāng)所述第二消息集成模塊監(jiān)聽到所述模式注冊中心注冊了新的模式信息,從所述模式注冊中心中獲取所述第一模式信息,將所述第一模式信息保存至模式隊(duì)列,其中,所述第一模式信息為所述模式注冊中心中注冊時(shí)長最短的模式信息,所述模式隊(duì)列中還包括排序位于所述第一模式信息之前的第二模式信息;所述第二消息集成模塊從所述消息隊(duì)列中獲取攜帶有參考模式標(biāo)識的參考消息記錄,從所述模式隊(duì)列中獲取與所述參考模式標(biāo)識對應(yīng)的目標(biāo)模式信息,其中,所述參考消息記錄為所述第一消息記錄或所述第二消息記錄;所述第二消息集成模塊基于所述目標(biāo)模式信息解析所述參考消息記錄,得到目標(biāo)dml語句,其中,所述目標(biāo)dml語句用于修改所述下游數(shù)據(jù)庫中的數(shù)據(jù);所述第二消息集成模塊基于所述目標(biāo)模式信息生成目標(biāo)ddl語句,其中,所述目標(biāo)ddl語句用于修改所述下游數(shù)據(jù)庫的表結(jié)構(gòu);所述第二消息集成模塊將所述目標(biāo)dml語句或所述目標(biāo)ddl語句發(fā)送至所述下游數(shù)據(jù)庫;所述下游數(shù)據(jù)庫執(zhí)行所述目標(biāo)dml語句,完成與所述上游數(shù)據(jù)庫的數(shù)據(jù)同步,或執(zhí)行所述目標(biāo)ddl語句,完成與所述上游數(shù)據(jù)庫的表結(jié)構(gòu)變更同步。本技術(shù)能夠在不中斷etl過程情況下實(shí)時(shí)感知到上游數(shù)據(jù)庫表結(jié)構(gòu)的變更,并自動(dòng)化實(shí)現(xiàn)目標(biāo)庫表結(jié)構(gòu)變更的同步,保障系統(tǒng)正常服務(wù)功能的同時(shí)降低系統(tǒng)運(yùn)維成本。

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