datax 导入数据中文乱码_sqoop导入oracle数据到hive字符集不同导致中文乱码问题

最近在做sqoop导入oracle数据到hive字符集乱码问题,虽然没有解决,但是现在将一些尝试的过程发布,供大家参考,以后有遇到这种问题的供大家参考少走弯路。

oracle里面的字符集是us7ascii,导入到hive里面后中文乱码hive环境(元数据为mysql)字符集是utf,在命令里面使用convert(rd_yj,'UTF8','US7ASCII')和utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(rd_yj))做转换都不行,

这个是命令:sqoop import --connect jdbc:oracle:thin:@ip:1521:dname --username x --password x --query "select convert(rd_yj,'UTF8','US7ASCII') from dj_fzcgl where \$CONDITIONS"  -m 1 --target-dir /user/hive/warehouse/sichuan.db/dj_fzcgl_test --hive-table dj_fzcgl_test --hive-import --as-parquetfile

ps:其他oracle的库使用字符集是gbk hive导入不乱码;

考虑过修改数据库字符集(alter database character set  utf),但是数据库字符集建立后一般不改,修改字符集相当于重建数据库,而且已经导入的表不会因为修改字符集而重新编码;

可以考虑用文件入库,oracle的spool可以轻松实现将数据库导出到txt,重建数据库或者新建一个数据库实例,设置对应的字符集,oracle提供了sqlldr的工具可以快速

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值