System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,具體涉及一種增量數據校驗方法、裝置、設備、介質和程序產品。
技術介紹
1、在將關系型數據庫mysql中的數據遷移到其他類型的數據庫的過程中,通常面臨數據的全量遷移和增量遷移這兩個階段,全量遷移主要關注于獲取當前時間點mysql中的完整數據快照并將其遷移至其他類型的數據庫中,增量遷移的目標是補充全量遷移后新增或修改的數據。為了確保數據遷移前后的一致性,需要對源端和目的端的數據進行校驗,確保源端和目的端的數據保持一致。
2、對增量數據的校驗的核心在于:在全量遷移后的數據對比后,對新增或修改的數據進行檢測。目前,對增量數據校驗常見的方式是捕獲mysql的二進制日志(binary?log)或主從復制日志,在這些日志中詳細記錄了mysql中數據的所有變更操作,包括插入、更新和刪除等,隨后,目標數據庫可以通過讀取這些日志,獲取增量數據,并與源數據庫中的源數據進行對比。
3、然而,上述對增量數據進行校驗的方法,如果對增量數據進行校驗的時間過長,可能會錯過一些在當前時間點之前發生的變更的數據,導致對比結果的不準確。
技術實現思路
1、本申請實施例的目的是提供一種增量數據校驗方法、裝置、設備、介質和程序產品,提升了對增量數據校驗的效率和準確性。
2、本申請的技術方案如下:
3、第一方面,提供了一種增量數據校驗方法,該方法包括:
4、在確定完成源數據庫到目標數據庫的全量數據的遷移和校驗的情況下,獲取所述源數據庫在第一時間段內
5、對第一數據庫中第一表格中的目標行的增量數據,將所述目標行的各列增量數據進行拼接后轉換為字符串類型的數據,得到所述目標行的增量數據所對應的字符串型數據,其中,所述第一數據庫為所述源數據庫和所述目標數據庫,所述第一表格為所述第一數據庫中每個表格,所述目標行為所述第一表格的每一行,在所述第一數據庫為所述源數據庫的情況下,所述增量數據為所述第一增量數據,在所述第一數據庫為所述目標數據庫的情況下,所述增量數據為所述第二增量數據;
6、將每一行的增量數據所對應的所述字符串型數據映射為固定長度的整數型數據,得到每一行的增量數據所對應的整數型數據;
7、通過默克爾二叉樹算法對所述源數據庫各表格中每一行增量數據所對應的所述整數型數據進行計算,得到與所述源數據庫對應的第一默克爾二叉樹,以及通過所述默克爾二叉樹算法對所述目標數據庫各表格中每一行增量數據所對應的所述整數型數據進行計算,得到與所述目標數據庫對應的第二默克爾二叉樹;
8、將所述第一默克爾二叉樹和所述第二默克爾二叉樹進行比對,得到所述第一增量數據和所述第二增量數據之間的校驗結果。
9、第二方面,提供了一種增量數據校驗裝置,該裝置包括:
10、第一獲取模塊,用于在確定完成源數據庫到目標數據庫的全量數據的遷移和校驗的情況下,獲取所述源數據庫在第一時間段內的第一增量數據和所述目標數據庫在所述第一時間段內的第二增量數據,其中,所述第一增量數據和所述第二增量數據分別存儲在其對應的數據庫中的至少一個表格中,所述第一時間段為當前時間與第一時間之間的時間段,所述第一時間為距離所述當前時間最近一次對增量數據校驗完成的時間;
11、第一確定模塊,用于對第一數據庫中第一表格中的目標行的增量數據,將所述目標行的各列增量數據進行拼接后轉換為字符串類型的數據,得到所述目標行的增量數據所對應的字符串型數據,其中,所述第一數據庫為所述源數據庫和所述目標數據庫,所述第一表格為所述第一數據庫中每個表格,所述目標行為所述第一表格的每一行,在所述第一數據庫為所述源數據庫的情況下,所述增量數據為所述第一增量數據,在所述第一數據庫為所述目標數據庫的情況下,所述增量數據為所述第二增量數據;
12、第二確定模塊,用于將每一行的增量數據所對應的所述字符串型數據映射為固定長度的整數型數據,得到每一行的增量數據所對應的整數型數據;
13、第三確定模塊,用于通過默克爾二叉樹算法對所述源數據庫各表格中每一行增量數據所對應的所述整數型數據進行計算,得到與所述源數據庫對應的第一默克爾二叉樹,以及通過所述默克爾二叉樹算法對所述目標數據庫各表格中每一行增量數據所對應的所述整數型數據進行計算,得到與所述目標數據庫對應的第二默克爾二叉樹;
14、第四確定模塊,用于將所述第一默克爾二叉樹和所述第二默克爾二叉樹進行比對,得到所述第一增量數據和所述第二增量數據之間的校驗結果。
15、第三方面,本申請實施例提供了一種電子設備,該電子設備包括處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序或指令,所述程序或指令被所述處理器執行時實現本申請實施例任一所述的增量數據校驗方法的步驟。
16、第四方面,本申請實施例提供了一種可讀存儲介質,所述可讀存儲介質上存儲程序或指令,所述程序或指令被處理器執行時實現本申請實施例任一所述的增量數據校驗方法的步驟。
17、第五方面,本申請實施例提供了一種計算機程序產品,所述計算機程序產品中的指令由電子設備的處理器執行時,使得所述電子設備能夠執行本申請實施例任一所述的增量數據校驗方法的步驟。
18、本申請的實施例提供的技術方案至少帶來以下有益效果:
19、在本申請實施例中,在確定完成源數據庫到目標數據庫的全量數據的遷移和校驗的情況下,獲取源數據庫在第一時間段內的第一增量數據和目標數據庫在第一時間段內的第二增量數據,然后對第一增量數據和第二增量數據進行校驗,如此在校驗增量數據時僅校驗上次校驗之后到當前時間段內的增量數據,而非是對所有的增量數據均進行校驗,如此減少了增量數據遷移時校驗的時間,提升了增量數據校驗的效率。此外,在對第一增量數據和第二增量數據進行校驗時,通過對源數據庫和目標數據庫中的每個數據庫中每個表格中的每一行的增量數據,將該行的各列增量數據進行拼接后轉換為字符串類型的數據,得到每一行的增量數據所對應的字符串型數據,如此在后續將源數據庫和目標數據庫中的增量數據進行比對時,每個表格中每一行僅比對一次,無需比對多次,進一步提升了增量數據校驗的效率,然后將每一行的增量數據所對應的字符串型數據映射為固定長度的整數型數據,得到每一行的增量數據所對應的整數型數據,通過默克爾二叉樹算法對源數據庫各表格中每一行增量數據所對應的整數型數據進行計算,得到與源數據庫對應的第一默克爾二叉樹,以及通過默克爾二叉樹算法對目標數據庫各表格中每一行增量數據所對應的整數型數據進行計算,得到與目標數據庫對應的第二默克爾二叉樹,將第一默克爾二叉樹和第二默克爾二叉樹進行比對,得到第一增量數據和第二增量數據之間的校驗結果,如此對第一本文檔來自技高網...
【技術保護點】
1.一種增量數據校驗方法,其特征在于,所述方法應用于增量數據校驗裝置,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述將所述第一默克爾二叉樹和所述第二默克爾二叉樹進行比對,得到所述第一增量數據和所述第二增量數據之間的校驗結果,包括:
3.根據權利要求2所述的方法,其特征在于,所述在確定所述第一根節點值和所述第二根節點值不一致的情況下,確定所述第一增量數據和所述第二增量數據之間的校驗結果為所述第一增量數據和所述第二增量數據不一致,包括:
4.根據權利要求3所述的方法,其特征在于,所述獲取所述源數據庫在第一時間段內的第一增量數據和所述目標數據庫在所述第一時間段內的第二增量數據,包括:
5.根據權利要求1所述的方法,其特征在于,所述將每一行的增量數據所對應的所述字符串型數據映射為固定長度的整數型數據,得到每一行的增量數據所對應的整數型數據,包括:
6.根據權利要求1所述的方法,其特征在于,在所述得到每一行的增量數據所對應的整數型數據之后,所述方法還包括:
7.一種增量數據校驗裝置,其特征在于,所述裝置
8.一種電子設備,其特征在于,包括處理器,存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序或指令,所述程序或指令被所述處理器執行時實現如權利要求1-6任一所述的增量數據校驗方法的步驟。
9.一種可讀存儲介質,其特征在于,所述可讀存儲介質上存儲程序或指令,所述程序或指令被處理器執行時實現如權利要求1-6任一所述的增量數據校驗方法的步驟。
10.一種計算機程序產品,其特征在于,所述計算機程序產品中的指令由電子設備的處理器執行時,使得所述電子設備執行如權利要求1-6任一所述的增量數據校驗方法的步驟。
...【技術特征摘要】
1.一種增量數據校驗方法,其特征在于,所述方法應用于增量數據校驗裝置,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述將所述第一默克爾二叉樹和所述第二默克爾二叉樹進行比對,得到所述第一增量數據和所述第二增量數據之間的校驗結果,包括:
3.根據權利要求2所述的方法,其特征在于,所述在確定所述第一根節點值和所述第二根節點值不一致的情況下,確定所述第一增量數據和所述第二增量數據之間的校驗結果為所述第一增量數據和所述第二增量數據不一致,包括:
4.根據權利要求3所述的方法,其特征在于,所述獲取所述源數據庫在第一時間段內的第一增量數據和所述目標數據庫在所述第一時間段內的第二增量數據,包括:
5.根據權利要求1所述的方法,其特征在于,所述將每一行的增量數據所對應的所述字符串型數據映射為固定長度的整數型數據,得到每...
【專利技術屬性】
技術研發人員:白國濤,李龍飛,崔凱峰,李超,王珊珊,張仲良,
申請(專利權)人:中移動信息技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。