离线同步脏数据如何排查和定位?[阿里云DataWorks]

离线同步脏数据如何排查和定位?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 官方提供了专业回答,参考文档。

  2. 报错现象:报错现象:{“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:数据类型。 此答案整理自钉群“DataWorks交流群(答疑@机器人)”

  3. 脏数据定义:单条数据写入目标数据源过程中发生了异常,则此条数据为脏数据。 因此只要是写入失败的数据均被归类于脏数据。

    脏数据影响:脏数据将不会成功写入目的端。您可以控制是否允许脏数据产生,并且支持控制脏数据条数,数据集成默认允许脏数据产生,您可以在同步任务配置时指定脏数据产生条数。

    详情可参考:通过向导模式配置离线同步任务。

    • 具体可以参考阿里云文档