用dataX向PolarDB中导数据时,出现脏数据问题怎么解决

首先附上dataX官网:DataX大大

这是我的dataX 导数据的json文件,其中有个属性

fieldDelimiter    我原本设置为 \u0001

在这里插入图片描述

执行shell 脚本直接执行 dataX 导数据的json 文件

会出现导入失败的现象:
在这里插入图片描述

直接执行shell 脚本在黑窗口中看到的日志信息有限,那么去azkaban中通过任务调度的方式去执行 dataX导数据操作:

日志信息显示是由于某一个字段值得问题导致数据导入失败:
   这里用dataX导入的数据是 数仓中的 string 类型的数据导入到PolarDB表中
   对应的字段是 json 类型,推断可能是由于数仓中该字段值有null值,导入到
   PolarDB中在进行json类型转化,产生的异常。

这里通过修改 DataX导数据的 json 文件中对空值处理的方式:

"nullFormat":"\\N"    --空值默认为 \\N   前面的 \ 应该是转义字符

在这里插入图片描述
数据就能全部导入了:
在这里插入图片描述

导入数据中包含表情包:

例如一段话中使使用输入法中的表情包
将数据导入导mysql 表中

两处需要注意:

1.mysql建表需要注意字符集: utf8mb4
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. dataX json脚本链接mysql参数 ?useUnicode=true&com.mysql.jdbc.faultInjection.serverCharsetIndex=45
"jdbcUrl": "jdbc:mysql://${wx_mysql_url}:${wx_mysql_port}/${wx_mysql_db}?useUnicode=true&com.mysql.jdbc.faultInjection.serverCharsetIndex=45"

版权声明:本文为weixin_46609492原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>