大数据智能体工作台 DataBuddy 实时数据同步

数据对账用于在来源端与目标端之间周期性比对数据,及时发现数据不一致问题。DataBuddy 实时同步任务支持基于 数据条数 与 数据内容(主键) 的两种对账规则,覆盖全量与增量两种范围,并提供告警通知与差异详情查看。这里说明数据对账的支持范围、配置方式与结果查看。

相关产品
大数据智能体工作台 DataBuddy 产品页,含版本规格、价格与购买入口。

二、前提条件

·已创建实时整库或实时分库分表同步任务。

·来源、目标端在 支持的链路 范围内。

·如使用「校验数据内容」规则,源表必须包含主键或唯一索引。

三、使用限制

限制项 说明
任务类型 实时整库迁移任务 / 实时分库分表任务支持
主键 「校验数据内容」仅支持基于主键的对账,无主键且无唯一索引的表不支持
MongoDB MongoDB 来源端不支持增量对账 (仅支持全量对账)
单任务库表数量 任务涉及库表数量超过 5000 时,无法按单表配置数据对账(不影响整体同步任务运行)
对账周期 最小对账间隔为 60 分钟
差异详情预览 单次最多预览 10000 条差异数据,且仅展示主键字段
资源占用 对账任务与同步任务复用同一计算资源 ,会占用资源组资源
目标端筛选条件 增量对账的筛选 SQL 在 Flink SQL 中执行,仅支持 Flink SQL 语法(如当前日期写作 ${YYYY-MM-dd} 而不是 CURRENT_DATE(),不等于使用 <> 而不是 !=)

四、支持的链路

任务类型 来源端
整库迁移任务 MySQL、TDSQL-C MySQL、Oracle、MongoDB、Kafka
分库分表任务 MySQL、TDSQL-C MySQL、Oracle

六、步骤 1:开启数据对账

数据对账在任务配置流程的 数据对账 步骤中配置:

1. 在 实时整库多表任务配置 或 实时分库分表任务配置 流程中进入 数据对账 步骤。

2. 打开 数据对账 开关。关闭时所有表都不进行对账;开启后按全局对账策略统一对账。

七、步骤 2:配置全局对账策略

参数 说明 是否必填
对账规则 校验数据条数 / 校验数据内容 ,详见下方说明 是
对账字段 仅在选「校验数据内容」时显示,当前仅支持主键对账 视规则
对账范围 全量对账 / 增量对账 ,详见 对账范围 是
对账时间 对账周期,最小 60 分钟 是

八、对账规则

规则 行为 适用场景
校验数据条数 通过数据源连接直接 count(*) 比较来源表与目标表条数 数据量不大,关注总量一致
校验数据内容 比对来源端与目标端的主键集合,主键不一致即认为数据不一致 主键稳定且关注每条记录是否落库;要求来源 / 目标端有主键或唯一索引

九、对账范围

范围 行为 用户输入
全量对账 对源 / 目标表全量数据对账 —
增量对账 通过过滤条件筛选后的数据进行对账,适合按时间分区 来源端筛选条件 + 目标端筛选条件

增量对账提示 :

·时间字段筛选支持 系统内置参数。

·支持细粒度对账(如按小时分区),可使用分组语法。

·来源、目标端筛选条件需各自符合对应数据源的 SQL 语法。

·如筛选条件中字段在来源、目标端不存在,需要在「单表对账」中按表修改,否则该表对账会失败。

示例(按小时分区对账):

select count(1), partition from table where partition > ${yyyyMMddHHmmss-8H} group by partition

注意:说明:

注意:目标端的筛选 SQL 在 Flink SQL 中执行 ,仅支持 Flink SQL 语法:

注意:不符合 Flink SQL 语法时,对账会失败。

十、步骤 3:(可选)按单表自定义对账

全局策略对任务下所有表生效。如需差异化处理:

1. 在配置流程的对账步骤中点击需要差异化的单表。

2. 可单表开启、关闭数据对账,或修改单表的增量对账条件。

注意:说明:

注意:单表对账修改在任务发布运行后生效。如某张表需要不同的筛选条件或不参与对账,建议在保存前调整完整。

十一、步骤 4:(可选)配置对账告警

实时同步任务的告警规则页面支持配置数据对账告警。仅对开启了数据对账的任务生效 。

告警指标 说明 阈值
数据对账 / 任务失败 数据对账常驻任务运行失败 失败时按 X 分钟 / 小时 / 天告警 N 次
数据对账 / 对账失败 对账明细中某些表为对账失败状态 失败时按 X 分钟 / 小时 / 天告警 N 次
数据对账 / 对账时间 单次数据对账时间超过阈值 对账时间 > X 分钟 / 小时 / 天
数据对账 / 数据不一致条数 对账明细中某些表的数据差异条数不为 0 数据不一致条数 > N 条

·数据不一致条数按表粒度告警——任意一张表的不一致条数超阈值即触发。

·告警渠道与基础规则参见 设置通知渠道。

十二、查看对账结果

实时同步任务按设置的首次对账时间和对账间隔进行周期持续对账。

十三、入口

进入任务运维详情页(见 实时同步任务运维监控),切换到 数据对账 页面。

十四、对账概览指标

指标 说明
表总数 同步任务涉及的表数量;分库分表场景下按目标端表数量统计
数据一致表数量 来源 / 目标条数或主键完全一致的表数量
数据不一致表数量 来源 / 目标存在差异(差异数 ≠ 0)的表数量
对账失败数量 对账过程中失败的表数量
未对账表数量 未开启数据对账的表数量

十五、对账明细

明细按表逐行展示对账结果。基于主键对账且差异数 ≠ 0 的记录支持 查看差异详情 :

项 说明
差异详情预览上限 10000 条
展示字段 仅展示主键字段

十六、对账任务状态与可执行操作

对账任务是常驻任务,按设置的时间周期自动运行:

状态 说明 可执行操作
对账任务未启动 尚未启动 运行
对账任务运行中 正在执行 停止
对账任务已停止 人为停止 运行
对账任务失败 启动失败或运行失败 运行
对账任务操作中 中间态 —

十七、验证结果

操作完成后,你可以通过以下方式确认:

1. 在 数据对账 概览看到 表总数 与各分类计数符合预期,未对账表数量 等于未配置对账的表数。

2. 「对账明细」按周期产生新的对账记录。

3. 已配置对账告警时,触发条件下能在告警渠道收到通知。

4. 单表自定义对账配置生效——查看明细时该表的对账规则与全局不同。

十九、Q:开启数据对账后会拖慢任务性能吗?

A:会有一定影响。数据对账需要拉取来源端与目标端数据,会对数据源有一定负担 ,并且对账任务与同步任务复用同一计算资源 ,会占用资源组资源。建议:

·把对账周期设置得不要过短(最小 60 分钟)。

·对大表使用 校验数据条数 ,对中小表再使用 校验数据内容 。

·资源组监控值会包含数据对账实例占用,请按实际负载评估资源组规格。

20、Q:单表对账失败,怎么排查?

A:常见原因:

1. 筛选条件中字段在来源端或目标端不存在 —— 在单表对账配置中调整该表的增量对账条件,使字段名匹配。

2. 目标端筛选 SQL 使用了非 Flink SQL 语法 —— 如 CURRENT_DATE()、!=。改为 ${YYYY-MM-dd}、<>。

3. MongoDB 配置了增量对账 —— MongoDB 不支持增量对账,请改为全量对账或在该表关闭对账。

4. 任务涉及库表 > 5000,无法按单表配置 —— 当前规模无法支持单表对账,请拆分为多个任务。

21、Q:基于主键对账,差异条数为 0 但内容仍可能不一致?

A:是。当前 校验数据内容 仅比对主键集合,不比对其他字段值。如果业务需要比对全字段一致性,建议:

·通过数据质量任务增加字段值校验(详见 创建质量任务)。

·或通过 SQL 任务自定义比对脚本(详见 SQL 任务)。

22、Q:差异详情只显示 10000 条,怎么处理超出部分?

A:差异详情仅用于快速定位差异样本。超出 10000 条 时建议:

1. 通过差异样本判断不一致原因(如 DDL 漏同步、过滤条件遗漏、写入失败等)。

2. 修复同步任务后重新启动一次对账。

3. 如需全量比对,建议另起一个 SQL 任务,将来源、目标主键集合分别落到中间表后做差集。

23、Q:对账任务能单独停止,不影响数据同步吗?

A:可以。对账任务是常驻任务,可以在 数据对账 单独点击 停止 ,不影响数据同步主任务 。停止后再点击 运行 即可恢复。

24、相关文档

·实时整库多表任务配置

·实时分库分表任务配置

·实时同步任务运维监控

·创建计算资源

·设置通知渠道

·系统内置参数

赞 (0)
上一篇 4天前
下一篇 4天前