System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于計算機領域,更具體地,涉及一種數據同步方法、裝置、電子設備及存儲介質。
技術介紹
1、隨著信息化水平的不斷提高,數據的爆發性增長導致了大量數據存儲在各種不同類型的數據庫中。為了實現信息的共享,數據庫之間的數據同步成為了目前的主流方法。數據同步分為全量同步和增量同步兩種方式。全量同步指一次性讀取源表的所有數據,而增量同步則是周期性地同步源表中發生變化的數據。目前,數據增量同步主要采用觸發器增量、md5增量、影子表增量、cdc增量以及時間戳增量等方法。然而,由于觸發器、md5、影子表和cdc等增量實現方式要求對業務方源表或源數據庫進行調整,或需要配置復雜的同步流程,因此目前主要采用時間戳的方式進行數據同步。
2、基于時間戳的數據增量同步實現相對簡單,只需要對數據讀取sql進行調整,添加時間戳篩選條件即可。而且,這種方法無需對業務方源數據庫進行諸如開啟歸檔日志、添加觸發器等侵入性操作。
3、然而,現有技術中的基于時間戳的數據增量同步仍存在以下幾個不足之處:
4、(1)當增量數據同步的時間范圍較長時,容易出現數據庫快照過舊的錯誤造成同步中斷。這意味著在進行同步時,快照所包含的數據可能已經過時,無法反映最新的變化。
5、(2)時間戳同步需要獲取源表時間戳字段的最大值來確定數據同步的結束時間點。然而,對大多數數據庫進行max()聚合函數的計算會導致效率低下的問題。
技術實現思路
1、本專利技術提供一種數據同步方法、裝置、電子設備及存
2、為實現上述目的,第一方面,本專利技術提供一種數據同步方法,包括:
3、獲取同步頻率和最后一次同步記錄時刻,所述同步頻率用于指示時間戳增量同步操作的查詢時間跨度;
4、基于所述同步頻率和所述最后一次同步記錄時刻,循環執行所述時間戳增量同步操作,直至同步截止時刻大于或等于當前時刻;
5、其中,在循環過程中所述同步截止時刻是基于所述同步頻率和動態更新后的所述最后一次同步記錄時刻確定的,所述時間戳增量同步操作的數據查詢時間范圍是基于所述最后一次同步記錄時刻和所述同步截止時刻確定的。
6、可選地,所述時間戳增量同步操作,包括:
7、判斷所述同步截止時刻是否小于當前時刻;
8、若確定所述同步截止時刻小于當前時刻,則基于所述最后一次同步記錄時刻和所述同步截止時刻,按照時間戳增量方式將源數據庫中待同步的目標數據同步至目標數據庫;
9、若確定所述目標數據成功同步至所述目標數據庫,更新所述最后一次同步記錄時刻;
10、基于所述同步頻率和所述最后一次同步記錄時刻,更新所述同步截止時刻。
11、可選地,所述最后一次同步記錄時刻存放在同步記錄表,所述基于所述最后一次同步記錄時刻和所述同步截止時刻,按照時間戳增量方式將源數據庫中待同步的目標數據同步至目標數據庫,包括:
12、通過查詢同步記錄表所存放的最后一次同步記錄時刻,確定同步起始時刻;
13、基于所述同步起始時刻和所述同步截止時刻,查詢所述源數據庫,獲取所述目標數據;
14、同步所述目標數據至所述目標數據庫。
15、可選地,所述基于所述同步起始時刻和所述同步截止時刻,查詢所述源數據庫,獲取所述目標數據,包括:
16、判斷所述同步起始時刻是否為空值;
17、若所述同步起始時刻不為空值,則基于所述同步起始時刻和所述同步截止時刻,發送第一查詢指令至所述源數據庫,所述第一查詢指令用于指示按所述最后一次同步記錄時刻和所述同步截止時刻確定第一數據查詢時間范圍并讀取所述第一數據查詢時間范圍內的數據;
18、獲取所述源數據庫輸出的所述目標數據。
19、可選地,在判斷所述同步起始時刻是否為空值之后,還包括:
20、若所述同步起始時刻為空值,則基于所述同步截止時刻,發送第二查詢指令至所述源數據庫,所述第二查詢指令用于指示按所述同步截止時刻確定第二數據查詢時間范圍并讀取所述第二數據查詢時間范圍內的數據;
21、獲取所述源數據庫輸出的所述目標數據。
22、可選地,所述獲取同步頻率和最后一次同步記錄時刻,包括:
23、基于調度頻率,判斷是否執行數據同步流程,所述調度頻率用于指示周期性執行所述數據同步流程,所述數據同步流程為循環執行所述時間戳增量同步操作的流程;
24、通過讀取同步頻率表獲取所述同步頻率;
25、通過讀取同步記錄表獲取所述最后一次同步記錄時刻。
26、可選地,在循環執行所述時間戳增量同步操作之前,還包括:
27、判斷所述最后一次同步記錄時刻是否為空值;
28、若所述最后一次同步記錄時刻為空值,則確定預設截止時刻作為初始同步截止時刻;或,若所述最后一次同步記錄時刻不為空值,則基于所述同步頻率和所述最后一次同步記錄時刻,確定初始同步截止時刻;
29、確定所述初始同步截止時刻作為循環過程中首次執行所述時間戳增量同步操作所采用的同步截止時刻。
30、第二方面,本專利技術還提供一種數據同步裝置,包括:
31、同步參數獲取模塊,用于獲取同步頻率和最后一次同步記錄時刻,所述同步頻率用于指示時間戳增量同步操作的查詢時間跨度;
32、循環增量同步模塊,用于基于所述同步頻率和所述最后一次同步記錄時刻,循環執行所述時間戳增量同步操作,直至同步截止時刻大于或等于當前時刻;
33、其中,在循環過程中所述同步截止時刻是基于所述同步頻率和動態更新后的所述最后一次同步記錄時刻確定的,所述時間戳增量同步操作的數據查詢時間范圍是基于所述最后一次同步記錄時刻和所述同步截止時刻確定的。
34、第三方面,本專利技術提供一種電子設備,包括:至少一個存儲器,用于存儲程序;至少一個處理器,用于執行存儲器存儲的程序,當存儲器存儲的程序被執行時,處理器用于執行第一方面或第一方面的任一種可能的實現方式所描述的方法。
35、第四方面,本專利技術提供一種計算機可讀存儲介質,計算機可讀存儲介質存儲有計算機程序,當計算機程序在處理器上運行時,使得處理器執行第一方面或第一方面的任一種可能的實現方式所描述的方法。
36、可以理解的是,上述第二方面至第四方面的有益效果可以參見上述第一方面中的相關描述,在此不再贅述。
37、總體而言,通過本專利技術所構思的以上技術方案與現有技術相比,具有以下有益效果:
38、對于循環過程中每一次執行時間戳增量同步操作,可以基于同步頻率和最后一次同步記錄時本文檔來自技高網...
【技術保護點】
1.一種數據同步方法,其特征在于,包括:
2.根據權利要求1所述數據同步方法,其特征在于,所述時間戳增量同步操作,包括:
3.根據權利要求2所述數據同步方法,其特征在于,所述最后一次同步記錄時刻存放在同步記錄表,所述基于所述最后一次同步記錄時刻和所述同步截止時刻,按照時間戳增量方式將源數據庫中待同步的目標數據同步至目標數據庫,包括:
4.根據權利要求3所述數據同步方法,其特征在于,所述基于所述同步起始時刻和所述同步截止時刻,查詢所述源數據庫,獲取所述目標數據,包括:
5.根據權利要求4所述數據同步方法,其特征在于,在判斷所述同步起始時刻是否為空值之后,還包括:
6.根據權利要求1-5任一項所述數據同步方法,其特征在于,所述獲取同步頻率和最后一次同步記錄時刻,包括:
7.根據權利要求6所述數據同步方法,其特征在于,在循環執行所述時間戳增量同步操作之前,還包括:
8.一種數據同步裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括:
10.一種非暫態計算機可讀存儲介質,
...【技術特征摘要】
1.一種數據同步方法,其特征在于,包括:
2.根據權利要求1所述數據同步方法,其特征在于,所述時間戳增量同步操作,包括:
3.根據權利要求2所述數據同步方法,其特征在于,所述最后一次同步記錄時刻存放在同步記錄表,所述基于所述最后一次同步記錄時刻和所述同步截止時刻,按照時間戳增量方式將源數據庫中待同步的目標數據同步至目標數據庫,包括:
4.根據權利要求3所述數據同步方法,其特征在于,所述基于所述同步起始時刻和所述同步截止時刻,查詢所述源數據庫,獲取所述目標數據,包括:
5.根據權利要求4所述數據同步方法,其特征在于...
【專利技術屬性】
技術研發人員:張雄彪,李顯鋒,熊純,余毅,張永強,
申請(專利權)人:武漢達夢數據庫股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。