开发者社区> 问答> 正文

如何处理因脏数据导致任务失败的情况?

如何处理因脏数据导致任务失败的情况?

展开
收起
Puppet 2020-03-21 09:28:05 7384 0
1 条回答
写回答
取消 提交回答
  • 问题描述:脏数据(String[“”]不能转为Long)。 2017-09-21 16:25:46.125 [51659198-0-26-writer] ERROR WriterRunner - Writer Runner Received Exceptions:
    com.alibaba.datax.common.exception.DataXException: Code:[Common-01] 错误解读:同步数据出现业务脏数据情况,数据类型转换错误。String[“”]不能转为Long。

    排查思路:String[“”]不能转为LONG。

    两张表格中的建表语句一致,报上述错误是因为字段类型中的空字段不能转换成LONG类型,直接配置为STRING类型。

    问题描述:脏数据(Out of range value)。 2017-11-07 13:58:33.897 [503-0-0-writer] ERROR StdoutPluginCollector 脏数据: {“exception”:“Data truncation: Out of range value for column ‘id’ at row 1”,“record”:[{“byteSize”:2,“index”:0,“rawData”:-3,“type”:“LONG”},{“byteSize”:2,“index”:1,“rawData”:-2,“type”:“LONG”},{“byteSize”:2,“index”:2,“rawData”:“其他”,“type”:“STRING”},{“byteSize”:2,“index”:3,“rawData”:“其他”,“type”:“STRING”}],“type”:“writer”} 排查思路:mysql2mysql,源端设置的是smallint(5),目标端是int(11) unsigned,因为smallint(5)范围有负数,unsigned不允许有负数,所以产生脏数据。

    问题描述:脏数据(存储emoji)。 数据表配置成了可以存储emoji的,同步时报脏数据。

    排查思路:同步emoji时报错脏数据,需要修改编码格式: JDBC形式添加数据源 jdbc:mysql://xxx.x.x.x:3306/database?characterEncoding=utf8&com.mysql.jdbc.faultInjection.serverCharsetIndex=45 实例ID形式添加数据源 在数据库名后拼接?characterEncoding=utf8&com.mysql.jdbc.faultInjection.serverCharsetIndex=45。

    问题描述:空字段导致的脏数据。 {“exception”:“Column ‘xxx_id’ cannot be null”,“record”:[{“byteSize”:0,“index”:0,“type”:“LONG”},{“byteSize”:8,“index”:1,“rawData”:-1,“type”:“LONG”},{“byteSize”:8,“index”:2,“rawData”:641,“type”:“LONG”} 经DataX智能分析,该任务最可能的错误原因如下所示。 com.alibaba.datax.common.exception.DataXException: Code:[Framework-14] 错误解读:DataX传输脏数据超过用户预期,该错误通常是由于源端数据存在较多业务脏数据导致。请仔细检查DataX汇报的脏数据日志信息,或者您可以适当调大脏数据阈值。

    脏数据条数检查不通过,限制是1条,但实际上捕获了7条。

    排查思路:设置Column ‘xxx_id’ cannot be null字段不能为空,但数据中用空数据导致脏数据,修改其数据或对字段进行修改。

    问题描述:设置的字段大小不符合实际数据大小导致的脏数据。 2017-01-02 17:01:19.308 [16963484-0-0-writer] ERROR StdoutPluginCollector 脏数据:
    {“exception”:“Data truncation: Data too long for column ‘flash’ at row 1”,“record”:[{“byteSize”:8,“index”:0,“rawData”:1,“type”:“LONG”},{“byteSize”:8,“index”:3,“rawData”:2,“type”:“LONG”},{“byteSize”:8,“index”:4,“rawData”:1,“type”:“LONG”},{“byteSize”:8,“index”:5,“rawData”:1,“type”:“LONG”},{“byteSize”:8,“index”:6,“rawData”:1,“type”:“LONG”} 排查思路:设置Data too long for column ‘flash’字段设置太小,但数据中数据太大导致脏数据,修改其数据或对字段进行修改。

    问题描述:read-only数据库权限设置问题,设置只读权限。 2016-11-02 17:27:38.288 [12354052-0-8-writer] ERROR StdoutPluginCollector 脏数据:
    {“exception”:“The MySQL server is running with the --read-only option so it cannot execute this statement”,“record”:[{“byteSize”:3,“index”:0,“rawData”:201,“type”:“LONG”},{“byteSize”:8,“index”:1,“rawData”:1474603200000,“type”:“DATE”},{“byteSize”:8,“index”:2,“rawData”:“9月23号12点”,“type”:“STRING”},{“byteSize”:5,“index”:3,“rawData”:“12:00”,“type”:“STRING”} 排查思路:设置read-only模式,同步数据全为脏数据,修改其数据库模式,运行可以写入。

    2020-03-21 09:28:17
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载