sqoop数据迁移 mysql导入Hive hive导出到mysql

导入模板

sqoop import \
--connect jdbc:mysql://ip:3306/test \
--username root \
--password 123456\
--table users\
--fields-terminated-by '\t' \
--delete-target-dir \
--num-mappers 1 \
--hive-import \
--hive-database sqoop\
--hive-table users

参数解释:

import:从MySQL导入到HDFS文件系统数据

--connect:数据库JDBC连接字符串

--username:数据库用户名

--password:数据库密码

--table:数据库表名

--columns:数据库列名

--where: 查询条件

--query: 指定查询sql

--delete-target-dir  导入后删除hdfs的目录

--num-mappers 1  指定map数量=1,可以简写为 -m 1

--hive-import       导入hive

--hive-database sqoop   hive的database

--hive-table users      hive表

–hive-partition-key    分区字段

–hive-partition-value  分区值

–hive-overwrite     覆盖数据

实际上import命令,从MySQL导入到HDFS文的背后依然是执行的MapReduce。执行完map后,又执行了load data

如果导出的数据库是mysql  则可以添加一个 属性  --direct ,加了 direct 属性在导出mysql数据库表中的数据会快一点 执行的是mysq自带的导出功能

实际案例

导出

--update-mode主要有两种模式 updateonly(默认)和allowinsert

updateonly:该模式用于更新Hive表与目标表中数据的不一致,即在不一致时,将Hive中的数据同步给目标表(如MySQL、Oracle等的目标表中),这种不一致是指,一条记录中的不一致,比如Hive表和MySQL中都有一个id=1的记录,但是其中一个字段的取值不同,则该模式会将这种差异抹除。

allowinsert:该模式用于将Hive中有但目标表中无的记录同步到目标表中,但同时也会同步不一致的记录。可以这种模式可以包含updateony模式的操作,这也是为什么没有命名为insertonly的原因吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值