DataX从SqlServer同步数据到Hive数据错乱问题

博客介绍了在使用DataX从SqlServer同步数据到Hive时遇到的数据拆分问题,原因是源数据含有Hive的分隔换行符。解决方案包括更改Hive的建表语句,采用OrcSerde和ORC文件格式,并在DataX的hdfswriter中调整为ORC格式及启用压缩。经过修改,数据同步恢复正常。
摘要由CSDN通过智能技术生成

       最近在用DataX从SqlServer同步数据导Hive的时候,发现数据会发生拆分错乱的问题,本来应该在一行记录里的内容,被拆分成了两行记录。第一行后面的内容全部为空,因此判断应为分隔符的问题。即源数据内容中含有Hive分隔换行符,因此在将源数据拆分的时候,识别为了两行内容。

        解决方法:

        Step1:Hive中的建表语句,由原来的

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
stored as textfile

         改为了

ROW FORMAT SERDE
    'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
    'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
    'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
location '/gg_original/ods/ods_bas_prd_fashion/'
TBLPROPERTIES('orc.compress'='snappy'

        Step2: DataX中的hdfswriter中,将原来的

"fileType": "text"

        改为了

"fileType": "orc"

        并同时添加了

"compress":"SNAPPY"

       修改完毕后,再次运行测试,数据库中数据已正常显示。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值