[發(fā)明專利]大數(shù)據(jù)同步的一致性驗(yàn)證方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 202011078000.5 | 申請日: | 2020-10-10 |
| 公開(公告)號: | CN112256711B | 公開(公告)日: | 2022-07-05 |
| 發(fā)明(設(shè)計(jì))人: | 范亮 | 申請(專利權(quán))人: | 武漢鼎森電子科技有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/25;G06F16/27;G06F11/10 |
| 代理公司: | 武漢紅觀專利代理事務(wù)所(普通合伙) 42247 | 代理人: | 陳凱 |
| 地址: | 430000 湖北省武漢市江*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 數(shù)據(jù) 同步 一致性 驗(yàn)證 方法 系統(tǒng) | ||
1.一種大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,包括:
步驟S1,分別將A、B中的數(shù)據(jù)按照主鍵排序并拆分為大小相等的chunk,得到多個(gè)A的chunk和多個(gè)B的chunk;
步驟S2,分別從每一個(gè)A的chunk和每一個(gè)B的chunk中抽取同步數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,生成多個(gè)A的chunk字符串和多個(gè)B的chunk字符串;
步驟S3,分別對每一個(gè)A的chunk字符串和每一個(gè)B的chunk字符串進(jìn)行CRC32校驗(yàn)和運(yùn)算以得到校驗(yàn)和,將主鍵區(qū)間和校驗(yàn)和存儲在預(yù)備臨時(shí)表中,分別得到A的預(yù)備臨時(shí)表和B的預(yù)備臨時(shí)表;
步驟S4,根據(jù)主鍵區(qū)間分別抽取A的預(yù)備臨時(shí)表和B的預(yù)備臨時(shí)表中的校驗(yàn)和進(jìn)行逐行比對,若A的預(yù)備臨時(shí)表與B的預(yù)備臨時(shí)表中同一行的校驗(yàn)和不一致則將此行所對應(yīng)的chunk記錄在chunk差異臨時(shí)表中;
步驟S5,待A的預(yù)備臨時(shí)表與B的預(yù)備臨時(shí)表比對完畢,取出chunk差異臨時(shí)表中的所有記錄,對于chunk差異臨時(shí)表中有記錄的每一個(gè)chunk,將每一個(gè)A的chunk與B的chunk中每一行數(shù)據(jù)的CRC32進(jìn)行比對,若CRC32不一致則將此行的數(shù)據(jù)存放在最終差異對比表中;
其中,A與B中的數(shù)據(jù)中具有唯一主鍵。
2.如權(quán)利要求1所述的大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,A為阿里云rds數(shù)據(jù)庫,B為mysql數(shù)據(jù)庫。
3.如權(quán)利要求1所述的大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,A為mysql數(shù)據(jù)庫,B為elasticsearch搜索引擎。
4.如權(quán)利要求3所述的大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,所述一致性驗(yàn)證方法通過mvcc向查詢提供mysql數(shù)據(jù)庫在特定時(shí)間點(diǎn)的快照,通過暫停elasticsearch索引的增量同步,將所有的增量全部緩存到第三方存儲組件中,待驗(yàn)證和恢復(fù)數(shù)據(jù)完成再從第三方存儲組件中恢復(fù)所有索引的寫入。
5.如權(quán)利要求1所述的大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,所述一致性驗(yàn)證方法利用多線程、或進(jìn)程或協(xié)程技術(shù)將每個(gè)chunk的處理分別拿到單獨(dú)的執(zhí)行單元中處理。
6.如權(quán)利要求1-5任一所述的大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,步驟S2包括:
步驟S21,抽取A的chunk和B的chunk中同步數(shù)據(jù)的同步字段;
步驟S22,對同步字段的基礎(chǔ)數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換;
步驟S23,將轉(zhuǎn)換類型后的基礎(chǔ)數(shù)據(jù)存儲于map[string]interface{}存儲結(jié)構(gòu)中,其中string為數(shù)據(jù)的key,interface{}為通用數(shù)據(jù)類型;
步驟S24,對存儲于map[string]interface{}存儲結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行map key排序,將所有key轉(zhuǎn)換成字符串,生成chunk字符串。
7.如權(quán)利要求6所述的大數(shù)據(jù)同步的一致性驗(yàn)證方法,其特征在于,步驟S22包括:
將所有[]byte及text類型轉(zhuǎn)換為string字符串類型;
將所有整型轉(zhuǎn)換成int64或uint64類型;
將所有浮點(diǎn)型轉(zhuǎn)換成float64類型。
8.一種大數(shù)據(jù)同步的一致性驗(yàn)證系統(tǒng),其特征在于,包括:
chunk拆分模塊,用于分別將A、B中的數(shù)據(jù)按照主鍵排序并拆分為大小相等的chunk,得到多個(gè)A的chunk和多個(gè)B的chunk;
chunk字符串生成模塊,用于分別從每一個(gè)A的chunk和每一個(gè)B的chunk中抽取同步數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,生成多個(gè)A的chunk字符串和多個(gè)B的chunk字符串;
預(yù)備臨時(shí)表生成模塊,用于分別對每一個(gè)A的chunk字符串和每一個(gè)B的chunk字符串進(jìn)行CRC32校驗(yàn)和運(yùn)算以得到校驗(yàn)和,將主鍵區(qū)間和校驗(yàn)和存儲在預(yù)備臨時(shí)表中,分別得到A的預(yù)備臨時(shí)表和B的預(yù)備臨時(shí)表;
chunk差異臨時(shí)表生成模塊,用于根據(jù)主鍵區(qū)間分別抽取A的預(yù)備臨時(shí)表和B的預(yù)備臨時(shí)表中的校驗(yàn)和進(jìn)行逐行比對,若A的預(yù)備臨時(shí)表與B的預(yù)備臨時(shí)表中同一行的校驗(yàn)和不一致則將此行所對應(yīng)的chunk記錄在chunk差異臨時(shí)表中;
最終差異對比表生成模塊,用于待A的預(yù)備臨時(shí)表與B的預(yù)備臨時(shí)表比對完畢,取出chunk差異臨時(shí)表中的所有記錄,對于chunk差異臨時(shí)表中有記錄的每一個(gè)chunk,將每一個(gè)A的chunk與B的chunk中每一行數(shù)據(jù)的CRC32進(jìn)行比對,若CRC32不一致則將此行的數(shù)據(jù)存放在最終差異對比表中;
其中,A與B中的數(shù)據(jù)中具有唯一主鍵。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢鼎森電子科技有限公司,未經(jīng)武漢鼎森電子科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011078000.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 驗(yàn)證系統(tǒng)、驗(yàn)證服務(wù)器、驗(yàn)證方法、驗(yàn)證程序、終端、驗(yàn)證請求方法、驗(yàn)證請求程序和存儲媒體
- 驗(yàn)證目標(biāo)系統(tǒng)的驗(yàn)證系統(tǒng)及其驗(yàn)證方法
- 驗(yàn)證設(shè)備、驗(yàn)證方法和驗(yàn)證程序
- 驗(yàn)證裝置、驗(yàn)證系統(tǒng)以及驗(yàn)證方法
- 驗(yàn)證方法、驗(yàn)證系統(tǒng)、驗(yàn)證設(shè)備及其程序
- 驗(yàn)證方法、用于驗(yàn)證的系統(tǒng)、驗(yàn)證碼系統(tǒng)以及驗(yàn)證裝置
- 圖片驗(yàn)證碼驗(yàn)證方法和圖片驗(yàn)證碼驗(yàn)證裝置
- 驗(yàn)證裝置、驗(yàn)證程序和驗(yàn)證方法
- 驗(yàn)證裝置、驗(yàn)證方法及驗(yàn)證程序
- 跨多個(gè)驗(yàn)證域的驗(yàn)證系統(tǒng)、驗(yàn)證方法、驗(yàn)證設(shè)備





