最近使用datax来同步数据,在生产服务器执行脚本没问题,到了测试服务器出现了报错,报错信息如下:
具体错误信息为:com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-12], Description:[不支持的数据库类型. 请注意查看 DataX 已经支持的数据库类型以及数据库版本.]. - 您的配置文件中的列配置信息有误. 因为DataX 不支持数据库读取这种字段类型. 字段名:[source], 字段名称:[1111], 字段Java类型:[java.lang.String]. 请尝试使用数据库函数将其转换datax支持的类型 或者不同步该字段
寻找问题,发现问题可能出现在环境差异上,找到两者环境中的PostgreSQL的版本不一样。
测试环境的pgsql版本为9.6.21
生产环境的pgsql版本为13.1
有可能是因为生产环境Pgsql版本过低导致DataX不支持。
解决方案查询的sql类似如下:
select '全国企业破产重整案件信息网' as source,xxx from XXXTable
显示的报错是[source]字段相关的,一开始去掉这个字段,发现DataX不报这个字段的错了,报其他字段的错,但也是和中文或者''空值相关的。
问题可能出现在'中文'不能够被DataX识别,于是使用了转换函数拼接了一下,就可以了。
将sql改成类似如下即可:
select concat('全国企业破产重整案件信息网','') as source,xxx from XXXTable


![DataX 不支持数据库读取这种字段类型. 字段名:[source], 字段名称:[1111], 字段Java类型:[java.lang.String]. DataX 不支持数据库读取这种字段类型. 字段名:[source], 字段名称:[1111], 字段Java类型:[java.lang.String].](http://www.mshxw.com/aiimages/31/336792.png)
