报错现象:报错现象:{"message":"写入 ODPS 目的表时遇到了脏数据: 第[3]个字段的数据出现错误,请检查该数据并作出修改 或者您可以增大阀值,忽略这条记录.","record":[{"byteSize":0,"index":0,"type":"DATE"},{"byteSize":0,"index":1,"type":"DATE"},{"byteSize":1,"index":2,"rawData":0,"type":"LONG"},{"byteSize":0,"index":3,"type":"STRING"},{"byteSize":1,"index":4,"rawData":0,"type":"LONG"},{"byteSize":0,"index":5,"type":"STRING"},{"byteSize":0,"index":6,"type":"STRING"}。如何处理:该日志中可以看出脏数据的字段,第三个字段异常。脏数据是writer端报的,要检查下writer端的建表语句。odps支持的数据类型与mysql大不相同,虽然可以用varchar等类型,但是通过datax实际写入是不能识别,即mysql varchar类型不能写入odps varchar类型,需要使用string类型。数据同步原则:来源端数据源的数据要能写入目的端数据源(来源端和目的端类型需要匹配,字段定义的大小需要匹配),即源端是long、varchar 、double等类型的数据,目的端均可用string、text等大范围类型接纳。脏数据报错不清晰时,需要复制出打印出的脏数据的一整条,观察其中的数据,和目的端数据类型比较,看哪一条或哪一些不合规范。比如: {"byteSize":28,"index":25,"rawData":"ohOM71vdGKqXOqtmtriUs5QqJsf4","type":"STRING"} byteSize:字节数;index:25,第26个字段;rawData:具体值(即value);type:数据类型。
https://help.aliyun.com/document_detail/146663.html,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。