什么是数据稽查
数据稽查功能用于对比源库与目标库的数据差异,帮助用户及时发现数据不一致的问题。支持对源库和目标库的对象数目、数据行数、字段内容等多个维度的进行一致性对比。
数据稽查的类型
对象对比
对象级对比任务,对源库和目标库的数据库、索引、表、视图等对象的数量进行对比,检查数据对象是否缺失。
支持的数据链路: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类型。
内容对比会自动跳过以下特征的表:
表为空表,无数据。
不具有主键、唯一字段、唯一索引。
主键、唯一字段的数据类型不是列下数据类型:
源数据库为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)。
请在全量数据同步完成后进行对比,如果任务在进行增量数据迁移/同步,建议在业务低峰期进行对比,得到更准确的对比结果。
如果有多张大表需要对比,建议在多个对比任务中分批对比,避免一次性对比多张大表对数据库造成巨大压力。