[發明專利]大數據同步的一致性驗證方法及系統有效
| 申請號: | 202011078000.5 | 申請日: | 2020-10-10 |
| 公開(公告)號: | CN112256711B | 公開(公告)日: | 2022-07-05 |
| 發明(設計)人: | 范亮 | 申請(專利權)人: | 武漢鼎森電子科技有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/25;G06F16/27;G06F11/10 |
| 代理公司: | 武漢紅觀專利代理事務所(普通合伙) 42247 | 代理人: | 陳凱 |
| 地址: | 430000 湖北省武漢市江*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 同步 一致性 驗證 方法 系統 | ||
本發明提出了一種大數據同步的一致性驗證方法及系統,所述方法先獲得兩個數據庫中每一個chunk中同步字段的校驗和,根據校驗和識別有差異的chunk,再對有差異的chunk的每一行數據進行比對,以獲得每一個有差異的chunk中有差異的數據,實現兩個數據庫的一致性驗證,驗證以后便可根據得到的有差異的數據進行同步工作。
技術領域
本發明涉及大數據同步技術領域,尤其涉及一種大數據同步的一致性驗證方法及系統。
背景技術
在數據存儲領域,部分用戶將大部分的數據存放到mysql數據庫中,由于mysql數據庫在緩存領域及分布式搜索領域不能很好的發揮實力,用戶會將部分mysql數據存放至elasticsearch這類搜索引擎中。mysql數據庫和elasticsearch搜索引擎中的數據可通過go-mysql這種類庫實現同步功能,但不能很好的處理兩者的數據差異。目前僅有pt-table-checksum這類軟件可以很好的處理數據差異,但此類軟件僅支持mysql數據與mysql數據的一致性驗證,無法支持mysql數據與elasticsearch數據的一致性驗證,也無法支持阿里云rds數據與mysql數據的一致性驗證。
發明內容
有鑒于此,一方面,本發明提出了一種大數據同步的一致性驗證方法,以解決傳統大數據同步的一致性驗證方法無法支持mysql數據與elasticsearch數據、阿里云rds數據與mysql數據的一致性驗證的問題。
本發明的技術方案是這樣實現的:一種大數據同步的一致性驗證方法,包括:
步驟S1,分別將A、B中的數據按照主鍵排序并拆分為大小相等的chunk,得到多個A的chunk和多個B的chunk;
步驟S2,分別從每一個A的chunk和每一個B的chunk中抽取同步數據進行格式轉換,生成多個A的chunk字符串和多個B的chunk字符串;
步驟S3,分別對每一個A的chunk字符串和每一個B的chunk字符串進行CRC32校驗和運算以得到校驗和,將主鍵區間和校驗和存儲在預備臨時表中,分別得到A的預備臨時表和B的預備臨時表;
步驟S4,根據主鍵區間分別抽取A的預備臨時表和B的預備臨時表中的校驗和進行逐行比對,若A的預備臨時表與B的預備臨時表中同一行的校驗和不一致則將此行所對應的chunk記錄在chunk差異臨時表中;
步驟S5,待A的預備臨時表與B的預備臨時表比對完畢,取出chunk差異臨時表中的所有記錄,對于chunk差異臨時表中有記錄的每一個chunk,將每一個A的chunk與B的chunk中每一行數據的CRC32進行比對,若CRC32不一致則將此行的數據存放在最終差異對比表中;
其中,A與B中的數據中具有唯一主鍵。
可選的,A為阿里云rds數據庫,B為mysql數據庫。
可選的,A為mysql數據庫,B為elasticsearch搜索引擎。
可選的,所述一致性驗證方法通過mvcc向查詢提供mysql數據庫在特定時間點的快照,通過暫停elasticsearch索引的增量同步,將所有的增量全部緩存到第三方存儲組件中,待驗證和恢復數據完成再從第三方存儲組件中恢復所有索引的寫入。
可選的,所述一致性驗證方法利用多線程、或進程或協程技術將每個chunk的處理分別拿到單獨的執行單元中處理。
可選的,步驟S2包括:
步驟S21,抽取A的chunk和B的chunk中同步數據的同步字段;
步驟S22,對同步字段的基礎數據進行類型轉換;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢鼎森電子科技有限公司,未經武漢鼎森電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011078000.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





