一、為什么需要做資料一致性校驗
在資料的服務生命周期程序中,經常會因為資料遷移、主從復制、資料集成等原因產生資料流動及復制,在資料復制程序中,由于人為誤操作、軟體bug或硬體故障等原因,無法完全規避復制資料的準確性,如何有效保障復制資料的一致性變得至關重要,
當前市面上專門用于解決“資料一致性校驗”的工具比較匱乏,很多企業依然在使用:人工抽檢的原始解決方案,資料一致性導致的業務故障頻發,
舉一個客戶遇到CASE,客戶是一個電商SAAS服務提供商,如同其他SAAS服務,出于成本優化及大租戶穩定隔離的業務訴求,經常會涉及用戶資料的跨機搬遷,當前,客戶并沒有對應的資料一致性校驗工具,所以,每次遷移完成,都是人工抽核心表進行資料量的檢測,正應了“常在河邊走,哪有不濕鞋”的俗語,有一次遷移一個大商家資料的時候,在沒有完整資料一致性校驗的情況下,直接切換商家業務,最終出現因遷移資料【訂單】不一致,導致的商家業務故障,給大商家造成比較大的業務影響及品牌影響,
資料一致性校驗的重要性
二、一個好的工具應該具備哪些能力
同行們血淋淋的經驗告訴我們,擁有一個好的資料一致性校驗工具是必不可少的【關鍵時刻能救命~】,那么究竟我們需要怎么樣的工具呢,小編認為一款校驗工具至少應該具備如下六個特質,
資料一致性校驗工具是必不可少的能力
1. 能做結構一致性校驗
利用表存盤資料,幾乎成為大部分資料存盤的通用標準,所以表結構能否正確遷移直接影響遷移資料的一致性,同時,資料庫提供了諸多非表物件,包括視圖、存盤程序、函式、觸發器等,用戶一般基于這些物件實作輕量的業務邏輯,所以非表物件的能否成功遷移也會直接影響業務的遷移,由此,小編認為,具備結構一致性的快速校驗是校驗工具的基礎能力,
2. 完善的資料一致性校驗
除了結構,資料無疑是另一關鍵的校驗內容,資料存盤支持豐富的資料型別,差異化的資料型別默認值、資料格式、字符集以及時區等,因此,能否支持完善的資料型別,屏蔽源及目標資料源在資料范圍、資料格式、字符集及時區上的差異,也成為資料校驗工具的核心能力,
3. 快速定義不一致內容
資料校驗的目的是為了驗證資料一致性,并針對不一致資料進行快速補救,所以,能夠定位并提供具體不一致的內容也是資料校驗工具的重要特質,
4. 快速訂正資料的能力
當資料校驗定位到不一致內容后,是否能夠提供資料訂正腳本幫助用戶快速修復不一致資料也是校驗工具必不可少的基礎能力,
5. 校驗速度要快,“天下武功唯快不破”
小編認為校驗速度夠快也是核心要求,尤其在資料遷移、資料集成場景,在這種場景下,資料校驗會影響業務停機時間,或者下游資料生產基線【例如,報表生產時間】,對校驗時間要求較苛刻,
6. 對資料庫的性能影響要可控
校驗工具一般都會高并發讀取資料庫的資料,此時,資料庫同時承擔著線上的業務應用,如何有效平衡資料校驗速度以及資料庫穩定性是校驗工具應該解決的重要命題,
三、市面上都有哪些常見的方案
1. NineData
官網地址:https://www.ninedata.cloud/
NineData 是玖章算術旗下的多云資料管理平臺,它是一款即開即用的資料管理SAAS服務,當前 NineData 已經支持數十種常見同異構資料源(MySQL、SQLServer、CK等)之間的結構對比、資料對比及資料訂正能力,NineData 結構及資料對比作為獨立服務,可以靈活支持IDC、云主機自建及云托管資料源的資料一致性校驗及快速修復,從使用體驗、產品能力、穩定性及性能等維度綜合來看,NineData 是一款綜合實體比較強、比較難得的校驗工具,
2. Percona-toolkit
percona-toolkit是由資料庫廠商percona提供的工具集,其中: pt-table-checksum、 pt-table-sync 提供了MySQL主從復制一致性校驗及修復的能力,Pt-table-checksum主要通過在MySQL主中運行checksum query,然后利用MySQL主從復制,query流轉到slave中,進行check對比,由于,需要借助MySQL主從復制的能力,percona-toolkit只能應用主從復制場景,其優勢在于,當前工具使用比較廣泛,成熟度比較高,
3. 云廠商遷移校驗工具
配合資料遷移工具,部分云廠商會提供對應的一致性校驗能力,當前云廠商提供的校驗能力,一般只支持資料校驗,不支持結構校驗,且資料訂正能力比較弱,由于廠商的校驗工具是跟遷移工具配合使用,所以,對于不使用遷移工具的資料源,當前不能提供資料校驗能力,同時,其對云資料庫的遷移支持較好,但是對于云主機上自建資料庫以及IDC自建資料庫支持不好或不支持,
常見資料一致性方案推薦(NineData)
四、NineData,即開即用的資料一致性校驗服務
正如前面所述的推薦指數來看,NineData提供的結構對比、資料對比功能確實是綜合實力比較強,也比較推薦的一款產品,除了基礎的全量對比外,NineData還提供了快速對比、周期性對比及不一致復檢等多種對比形態,
- 快速對比,相較于全量對比,快速對比主要用以校驗視窗期比較短的情況,快速對比會對資料量、資料分布進行校驗,同時會隨機抽樣一定的比例進行校驗,
- 周期性對比,自定義對比頻率及對比方式,NineData會自動周期性調度對比任務進行結構及資料對比,小編理解這個功能應該用于長期資料復制場景的資料對比,例如主從復制、資料容災、資料多活或資料倉庫實時集成等場景,
- 不一致復檢,即針對上一次對比結果中不一致資料進行重新復檢,這個功能主要應用于資料訂正、主從復制【主從延遲】場景下,進行快速的復檢,
接下來,帶大家感受下這個產品的使用體驗,
1. 配置對比任務
整個任務配置程序很簡單,主要分為三個步驟:
- 選擇資料源,即配置對比的源實體及目標實體;
- 選擇對比物件,即配置需要對比的物件,對比物件可以選擇庫、表|非表、列;
- 配置映射關系及過濾條件,即配置對比表的映射關系;或者通過配置SQL過濾條件,可以只對關鍵資料進行對比,
步驟一:配置對比資料源
步驟二:選擇對比物件
步驟三:映射關系配置
2. 對比結果
NineData 會提供完善的對比結果,其會定位不一致內容,針對不一致內容,提供快速訂正腳本,
結構對比,對比總覽
結構對比,展示不一致內容
資料對比,對比結果
資料對比,不一致詳情
五、最后
資料作為企業的核心資產,資料的準確性關于業務可靠性及企業品牌口碑,為此,還是推薦大家在線上主從環境、資料遷移、資料復制等場景中,配套使用可靠的資料校驗工具,平臺工具 NineData 以其完善的校驗能力、產品體驗、校驗速度、穩定性及資料源環境的廣泛適配性成為了市面上比較出彩的校驗工具,推薦大家使用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/545645.html
標籤:其他
上一篇:sql快速查詢表結構方法
下一篇:MySQL資料庫常用操作命令
