分享

sqoop如何全量导出数据到mysql,并覆盖现有的表数据

zeus_lhl 发表于 2016-8-15 02:08:34 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 40961
1. hive表每天要定时地更新几天前的数据,然后重新导出到mysql,所以想全量导出,然后覆盖mysql现有的表数据。用sqoop怎么完成呢?
比如: mysql有id(主键),name,age三列,我只导出name和age,id是自增长的
2. sqoop的  --update-mode是怎么用的?
谢谢

已有(3)人评论

跳转到指定楼层
langke93 发表于 2016-8-15 05:41:54
update mode:生成update语句,替换数据库中的记录,下面可参考


sqoop export   -D oracle.sessionTimeZone=CST --connect jdbc:oracle:thin:@192.168.78.6:1521:hexel \
--username TRX --password trx --table SQOOP_UPDATE  --fields-terminated-by  '\t' \
--export-dir  /user/root/sqoop_update/ -m 1 --update-key ID --update-mode allowinsert \
--input-null-string '\\N'  --input-null-non-string '\\N'


更多
sqoop 常用命令整理
http://www.aboutyun.com/forum.php?mod=viewthread&tid=9983


回复

使用道具 举报

zeus_lhl 发表于 2016-8-15 10:43:03
langke93 发表于 2016-8-15 05:41
update mode:生成update语句,替换数据库中的记录,下面可参考

这个是根据id去判断重复与否,我想导出的,是根据其他几个字段来判断,而不是主键。因为mysql最后存储的几个字段,是我在hive里的分区值,所以如果有不同的分区,我想覆盖这个分区的信息。
回复

使用道具 举报

langke93 发表于 2016-8-15 12:31:30
zeus_lhl 发表于 2016-8-15 10:43
这个是根据id去判断重复与否,我想导出的,是根据其他几个字段来判断,而不是主键。因为mysql最后存储的 ...

sqoop还没这么智能,可以自己写个。
sqoop可以分区导入和到处

推荐参考
hive分区表如何通过sqoop导出数据到mysql
http://www.aboutyun.com/forum.php?mod=viewthread&tid=19485


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条