DataWorks百问百答05:数据同步任务出现脏数据怎么办?

什么样的数据会判定为脏数据?

同步任务在任务运行过程中遇到插件的所有异常都会作为脏数据进行统计。

  • 数据类型转换(源端表和目的表字段类型不匹配,大概率)
  • 源端表数据过长
  • 数据源异常
  • Reader/Writer插件异常
  • 数据中有表情符

我该如何排查?

同步任务出现报错:脏数据条数检查不通过,限制是[0]条,但实际上捕获了[141]条。
DataWorks百问百答05:数据同步任务出现脏数据怎么办?

【解决方法一】

增大脏数据限制条数,扩大阈值容忍脏数据(源端脏数据仍存在同步到目的端,日志显示脏数据记录,任务不会报错)。
DataWorks百问百答05:数据同步任务出现脏数据怎么办?

【解决方法二】

根据运行日志定位源端脏数据修复后再同步。
DataWorks百问百答05:数据同步任务出现脏数据怎么办?
将日志复制出来可快速定位,截取1条记录作为样例分析。本例情况就是源端第47个字段值"java"为String类型,而目的端对应写入字段为Long类型,需更改为匹配的类型。
DataWorks百问百答05:数据同步任务出现脏数据怎么办?

【案例1】
只有utf8mb4编码支持同步表情符
例如:添加JDBC格式的数据源时,需要修改utf8mb4的设置,如jdbc:mysql://xxx.x.x.x:3306/database?com.mysql.jdbc.faultInjection.serverCharsetIndex=45。

【案例2】
同步任务脏数据报错 XXXX command denied to user ‘XXXX’
因为没有数据源权限造成的问题,联系对应DBA申请一下update、insert、delete权限。
其余Reader/Writer插件问题情况略。


DataWorks百问百答历史记录请点击查看

采购季限时!原价2500元现仅需99元,3分钟入门DataWorks标准版6大场景!点击查看

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】