跳到主要内容

数据对比

NineData 数据库对比功能支持数据对比,即用户数据(UserData)的对比,用于对比两个数据库中的数据是否一致。通常用于备份恢复、数据迁移、数据同步后两端的数据一致性对比。本文介绍如何进行数据对比。

前提条件

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击数据库对比>数据对比

  3. 数据对比页面的右上角,单击创建数据对比

  4. 选择数据源页签,按照下表进行配置,并单击下一步

    参数
    说明
    任务名称输入对比任务的名称,为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。
    源数据源对比任务的源数据源,系统将基于该数据源的结构进行对比。
    目标数据源对比任务的对象数据源。
    对比频率选择对比的执行频率。
    • 一次性对比:仅执行一次对比任务。你可以手动多次执行对比任务。
    • 周期性对比:周期性地执行对比任务。
    对比周期(仅周期性对比显示)选择多长时间对比一次,可选周一到周日的任意一天或多天,也可以勾选每天,每天备份一次。
    时区根据实际业务情况选择时区,该参数影响对比任务显示的时间。
    启动时间(仅周期性对比显示)选择每个对比周期日的几点启动对比任务,可选 00:00~23:59,您也可以单击此刻,选择当前的时间点作为启动时间。
    对比方式选择数据的对比方式。说明:对于 Redis 数据源,还提供 BigKey 相关选项。选中“”选项,当遇到 BigKey指 Redis 中的某个占用空间很大的 Key,通常情况下是由于该 Key 对应的 Value 较大。 的情况时,仅对比该值的长度,而不对比其内容。您可以通过配置自定义 BigKey 值的长度,默认为 10000。表示某个 Key 对应的 Value 长度超过 10000 即认定该 Key 为 BigKey。阈值的单位根据数据类型不同,分为如下两种:
    • String 类型:Key 对应的 Value 长度超过 10000 个字符。
    • List、Set、Sorted Set、Stream 等类型:Key 对应的 Value 长度超过 10000 个元素。
  5. 选择对比对象页签,选择需要对比的内容,并单击下一步。支持

    • :选择源数据源中所有的数据库及对象。
    • :自定义选择需要进行对比的数据库及对象。在左侧源对象列表中,勾选需要对比的数据库及对象,单击>添加到目标对象列表。
  6. 页签,配置源端和目标端的数据库或对象名称的映射关系,并单击保存并预检查

    提示

    目标端中的数据库或对象名称如果和源端中的不一致,则需要进行配置。对于 MySQL 到 MySQL、SQL Server 到 SQL Server的对比,还可以单击数据表列表右侧的,配置目标字段名和源字段名的映射关系。

  7. 预检查页签,等待系统完成预检查,预检查通过后,单击启动任务

    提示
    • 如果预检查未通过,需要单击目标检查项右侧操作列的详情,排查失败的原因,手动修复后重新执行预检查,直到通过。
    • 检查结果警告的检查项,可视具体情况修复或忽略。
  8. 启动任务页面,提示启动成功。您可以执行如下操作:

    • 如果是周期性对比,可以单击立即对比,立即执行一次对比任务。
    • 单击查看详情查看对比任务的执行情况。
    • 单击返回列表可以返回数据对比列表。

查看对比结果

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击数据库对比>数据对比

  3. 数据对比页面单击目标同步任务的任务 ID,页面说明如下(本文以 MySQL 数据源的对比结果为例进行展示,其他数据源可能存在细微差别)。interface

    序号
    功能
    介绍
    1任务状态对比任务的当前状态。
    2配置告警配置告警后,系统会在任务失败时通过您选择的方式通知您。
    3立即对比仅未进行中的任务显示,立即开始一次对比任务。选项说明:
      • :进行一次全量数据的对比。
      • :进行一次快速对比。
      • :对前一次对比中出现的不一致内容进行对比。
    • :忽略源和目标的数据类型和格式差异,只取有效数值部分进行对比。
    4更多
    • 暂停:暂停任务,仅状态为运行中的任务可选。
    • 编辑:对任务的配置信息进行编辑。
    • 终止:结束任务。
    • 删除:删除任务,任务删除后无法恢复,请谨慎操作。
    5筛选项目可以通过任务状态任务结果表名称快速筛选需要的对比结果。
    6日志记录对比任务执行过程中的所有日志,支持通过日志类型日志产生时间关键字等项目快速筛选定位到目标日志。
    7监控任务的监控信息,展示每秒的对比记录数。对于 MySQL 和 SQL Server,还提供限流功能,开启限流后,当源数据库的 thread_running 参数达到这个您配置的阈值时停止对比,直到该参数的值下降到阈值以下才恢复对比,确保数据源的稳定性。
    8刷新获取对比任务的最新状态。
    9对比结果列表展示源端和目标端之间的数据对比结果。
    • 在对比列表右侧操作列单击details(不一致情况下显示):展示所有不一致的结果。在该页面,您还可以做如下操作:
      • 单击具体不一致结果右侧的details图标,查看更详细的对比详情。
      • 单击具体不一致结果右侧的sql图标,生成以表为单位的变更 SQL,您可以直接复制该 SQL 到目标数据源中执行,修改不一致的内容。
      • 单击,将源端正确的数据以 JSON 格式导出,方便您进行数据订正。
      • 单击列表右上角的setting02图标,可对列的展示方式进行自定义配置。
    • 在对比列表右侧操作列单击sql(不一致情况下显示):生成以库为单位的变更 SQL,您可以直接复制该 SQL 到目标数据源中执行,修改整体不一致的内容。
    10历史结果单击查看所有对比结果列表,单击目标列表项可以切换至该对比结果的详情。

相关文档