zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

数据同步后如何校验一致性?Tapdata Cloud 这样玩

Cloud同步数据一致性 如何 这样 校验 Tapdata
2023-06-13 09:11:52 时间

01.

数据校验

在1.0.6 版本迭代:Tapdata Cloud 版本上新!率先支持数据校验、类型映射等6大新功能中,我们了解到 Tapdata Cloud 已经支持多样化的校验手段:快速 count 校验、表全字段值校验和关联字段值校验,可增量式的差异化校验能力,用户可以快速精准地实现同步结果校验。

在Tapdata Cloud 工作台进行数据同步后,进入【数据校验】菜单,点击【新建校验任务】,即可创建数据校验,具体设置说明可查看用户文档:数据校验。

我们可以看到,数据校验包括3种类型:快速 count 校验、表全字段值校验和关联字段值校验。Tapdata Cloud 这三种校验方式有什么不同呢?

| 快速count校验

快速count仅对源表和目标表的行数进行count校验,速度极快,但是不会展示差异的具体字段内容。创建快速count校验时只需要选择到要校验的表,无需设置关联条件。

| 表全字段值校验

全表字段值校验会对源表和目标表的全部字段进行逐行校验,能查出所有字段的差异,但是速度慢。创建全表字段值校验时,除了要选择带校验表外,还需要针对每一个表设置索引字段。

高级校验:添加JS校验逻辑

在进行全表字段值校验时,还支持进行高级校验。通过高级校验用户可以添加JS校验逻辑,对源和目标的数据进行校验。

举个栗子:MongoDB查询

在高级校验中,

第一步 函数入参为源表数据,可以根据源表数据调用内置函数查询出目标数据

第二步 自定义校验逻辑

第三步 函数返回结果

  • result:是否通过校验(passed:校验通过,failed:校验失败),如果不填或填其它字符则校验失败,必填项
  • message:校验异常信息,建议校验失败返回,选填项
  • data:当前校验目标数据,建议校验失败返回,选填项

【MongoDB查询示例】

function validate(sourceRow){
   // 第1步
   var targetRow = target.executeQuery({database: "target",collection: "USER",filter: {USER_ID: sourceRow.USER_ID}});
   // 第2步
   if(sourceRow.USER_ID === targetRow[0].USER_ID){
       // 第3步
       return {result: 'passed',message: "",data: ""}
   }else{
       return {result: 'failed',message: "记录不一致",data: targetRow}
   }
}

| 关联字段值校验

关联字段值校验只对源表和目标表的关联字段的值进行比对校验,速度快于全表字段值校验模式。创建关联字段值校验时,您除了要选择带校验表外,还需要针对每一个表设置索引字段。

校验任务创建完成保存时会自动开始执行校验,用户也可以在列表手动执行一个已经存在的校验任务。

注意事项:

如果在同步过程中对表字段名进行了修改,那么进行表全字段值校验和关联字段值校验时会因为字段名不匹配而导致校验失败。

02.

数据详情

点击【校验详情】可以查看当前校验任务的详情。

  • 对于快速count的校验任务,用户可以在详情页看到每个表一致和不一致的结果。
  • 对于表全字段值校验的任务,可以在详情页看到每个表的一致和不一致的结果,对于有差异数据的表,点击可以看到错误数据详情。
  • 对于关联字段值校验的任务,用户可以在详情页看到每个表的一致和不一致的结果,对于有差异数据的表,点击可以看到错误数据详情。

以上需要注意的是:对于一次校验的错误数据 Tapdata Cloud 并不会全部保存,保存的数量取决于用户在创建任务时设置的【错误数据保存条数】,目前最多只支持10000条。

| 差异校验:可增量式的差异化校验能力

令人惊喜的是,Tapdata Cloud 还提供可增量式的差异化校验能力,即用户可以对上一次校验后还有差异的那一部分数据进行再次校验,以确认数据是否已经一致。这种方式是不是非常高效且人性化?

目前差异校验支持表全字段值校验和关联字段值校验的任务,快速count校验暂不支持。此外,有个需要注意的地方:如果校验任务的差异数据数量超过用户设置的【错误数据保存条数】,由于错误数据记录不完整,将无法再进行差异校验。所以在设置【错误数据保存条数】要注意啦,目前 Tapdata Cloud 错误数据保存条数最多支持10000条。

差异校验历史

进行了差异校验的校验任务可以看到最后校验时间和查看差异校验历史。

差异校验历史显示的是从第一次全量校验开始,基于这一次全量校验进行的每一次差异校验的历史记录。点击详情可查看每一次差异校验后有差异的数据的详细信息。

03.

校验历史

在校验任务列表点击【校验历史】可以打开当前任务的校验历史页面,用户可以看到当前校验任务进行的所有全量校验的历史记录。注意:差异校验的记录不会在这里显示。

04.

校验配置与删除

点击【校验配置】,打开校验任务的编辑页面,用户就可以对校验任务的配置进行编辑和调整。

点击【删除】,用户可以删除一个不需要的校验任务,一个更干净的数据校验界面又回来了!

05.

小结

Tapdata Cloud 是一款异构数据库实时同步云服务,支持多样化的数据源、“零”代码配置操作、强大的数据处理能力,让用户轻松实现跨系统跨类型的数据同步和交换,释放数据准备阶段的精力,更专注数据业务的开发与创新。

在完成数据同步任务之后,如何快速校验数据一致性和完整性?Tapdata Cloud 提供了3种方式:快速 count 校验、表全字段值校验和关联字段值校验,还提供了可增量式的差异化校验能力。用户可以根据自己的需要选择不同的校验方式,并在工作台快速查看和管理校验任务详情。同时,用户也要注意根据使用文档做好相应的配置。

Tapdata Cloud

cloud.tapdata.net

Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持 Oracle、MySQL、PG、SQL Server、MongoDB、ES 、达梦、Kafka之间的数据同步,即将支持 DB2、Sybase ASE、Redis、GBase、GaussDB 等,并对用户永久免费。

完美支持SQL->NOSQL,拖拽式的“零”代码配置操作、可视化任务运行监控,强大的数据处理能力,Tapdata Cloud 让您轻松实现跨系统跨类型的数据同步和交换,释放数据准备阶段的精力。