sqoop 抽mysql_sqoop抽取hive数据到mysql

是这样的mysql里有5个列,包含一个timestamp类型的列,默认值是CURRENT_TIMESTAMP这个列简单来说就是更新插入数据时候他会自己动加入系统当前的时间,所以说设置为不为null..

需求是这样的hive里只有4个列,现在用sqoop从hive抽取数据导入到mysql

4个列到mysql里正常显示,最后一个列使用mysql的timestamp这个列的默认值(就是这条数据同步到mysql的时间,或者以后做出修改后的时间)

脚本

sqoop export --connect "jdbc:mysql://$jdbc_mysql_url/$jdbc_mysql_database?useUnicode=true&characterEncoding=utf-8" \

--username $jdbc_mysql_username --password $jdbc_mysql_password \

--table efficiency_output_day --fields-terminated-by '\024' --lines-terminated-by '\n' \

--update-key "cardid,start_time,factory_no" --update-mode allowinsert \

--export-dir /user/hive/warehouse/etl_mes.db/etl_mes_zz_efficiency_output_day/000000_0

情况1:设置mysql timestamp设置为可以为:null 的话,导入数据可以导入,但是timestamp这列的值就是null

情况2:给hive表也增加一个列,但是不赋值,这样做报null指针异常

情况3: mysql timestamp设置为不为null 报错,输出的列不匹配

hive数据可以同步导入到mysql,然后timestamp列默认值取当前时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值