什么是數據稽查
數據稽查功能用于對比源庫與目標庫的數據差異,幫助用戶及時發現數據不一致的問題。支持對源庫和目標庫的對象數目、數據行數、字段內容等多個維度的進行一致性對比。
數據稽查的類型
對象對比
- 對象級對比任務,對源庫和目標庫的數據庫、索引、表、視圖等對象的數量進行對比,檢查數據對象是否缺失。
- 支持的數據鏈路:MySQL->MySQL、PostgreSQL->PostgreSQL、DDS/MongoDB->DDS/MongoDB、SQL Server->SQL Server。
行數對比
- 通過對源和目標庫中表的行數進行對比,檢查表的數據是否缺失。
- 支持的數據鏈路:MySQL->MySQL、PostgreSQL->PostgreSQL、DDS/MongoDB->DDS/MongoDB、SQL Server->SQL Server。
內容對比
- 通過對源和目標庫中表的行數據進行對比,檢查表的行數據是否一致。
- 支持的數據鏈路:MySQL->MySQL、PostgreSQL->PostgreSQL、SQL Server->SQL Server。
- 支持設置數據塊大小:用戶可以自由控制內容對比的數據塊大小,數據塊的大小可設置在1000-10000范圍內。
- 支持抽樣校驗:如果遷移或同步的數據量非常大,對所有數據都進行校驗會對源庫和目標庫造成高負荷。為此,內容對比提供抽樣校驗功能,用戶可以通過設置抽樣比例對數據進行抽樣檢驗,以減小數據庫的負擔。可設置的抽樣比例為10%、20%、30%、……、100%。
- 支持設置任務超時時間:用戶可以設定內容對比任務的最長運行時間,如果任務未能在最大期限內完成,則任務自行終止。可設置的時間長度為1-180分鐘。
- 支持查看不一致數據的所在范圍:如果發現不一致的數據,用戶可以查看不一致數據所在的范圍,縮小了用戶需要自行檢查的數據范圍。
操作步驟
-
在【數據遷移】實例列表頁面選擇相應的實例數據,并點擊實例ID進入【實例管理】頁面。
-
在【實例管理】頁面點擊“實例詳情”進入詳情頁面。
-
在【實例管理】頁面點擊“實例詳情”,在左側菜單欄點擊“數據稽查”,進入【數據稽查】頁面。
在【數據稽查】頁面中,可分別在對象級對比、數據級對比、內容級對比頁面創建不同級別的對比任務。
-
以內容級對比為例,介紹如何創建對比任務。
在【數據稽查】頁面點擊內容級對比,點擊“創建對比任務”。

-
在任務創建頁面,用戶可以選擇該內容對比任務的參數:需要對比的表、對比的數據塊大小、數據抽樣對比的比例、任務的超時時間。

-
任務運行中或完成后,用戶都可以點擊對比任務進入詳情頁查看對比信息,包括任務狀態、對比結論、對比的表的數量、不一致表數量、不一致的數據塊數量。

注意
以下數據類型的字段不會參與對比:
源數據庫為MySQL:TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT。
源數據庫為PostgreSQL:用戶自定義的DOMAIN或者TYPE類型。
源數據庫為SQL Server:XML、TEXT、NTEXT、IMAGE、TIMESTAMP。
內容對比會自動跳過以下特征的表:
表為空表,無數據。
不具有主鍵、唯一字段、唯一索引。
主鍵、唯一字段的數據類型為以下數據類型時,可支持內容對比,其他類型將自動跳過:
源數據庫為MySQL:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT、CHAR、VARCHAR、FLOAT、DOUBLE、DECIMAL。
源數據庫為PostgreSQL:SMALLINT(INT2)、INT(INT4、INTEGER)、BIGINT(INT8)、CHAR、BPCHAR、VARCHAR、UUID、DECIMAL(NUMERIC)、FLOAT4(REAL)、FLOAT8(DOUBLE PRECISION)。
源數據庫為SQL Server:TINYINT、SMALLINT、INT、BIGINT、BIT、CHAR、VARCHAR、NCHAR、NVARCHAR、FLOAT、DECIMAL、NUMERIC、REAL、SMALLMONEY、MONEY。
請在全量數據遷移完成后進行對比,如果任務在進行增量數據遷移/同步,建議在業務低峰期進行對比,得到更準確的對比結果。
如果有多張大表需要對比,建議在多個對比任務中分批對比,避免一次性對比多張大表對數據庫造成巨大壓力