MySQL存储换行和回车符问题

2022-03-05  本文已影响0人  社会我大爷

背景:

使用datax归档mysql数据到hdfs,发现hive中始终多出一些脏数据(id = 8),内容如下:

脏数据

排查思路:

排查最终定位datax读取数据时产生了脏数据,原因在于datax类型转换:varhcar → string

根据最靠近8这个值的id回到mysql中查处这样的数据,明显string_data存在特殊字符:

查看原数据

解决方法:

mysql中对这两种特殊符号的存储为:

char(10): 换行符 char(13): 回车符

那我们可以用replace函数做查询转换:SELECT id,replace(string_data, char(10), '') FROM tb_querytable where id =178877467;

替换特殊符号

总结:

这个问题本质上还是应用上写入不合法造成的,对varchar,text等类型的数据写入应该要通知到研发做数据的合法约束。

上一篇 下一篇

猜你喜欢

热点阅读