sqoop import and export

[b]import:[/b]

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities


--connect:指定JDBC URL
--username/password:mysql数据库的用户名
--table:要读取的数据库表

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --target-dir /etc/input/cities


--target-dir:指定数据导出后的目录,这样指定的目录只是一次会话的

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password sqoop --table cities --warehouse-dir /etl/input/

--warehouse-dir:指定数据导出后的目录,会根据表名来自动生成/etl/input/cities,只需要一次指定,后面的每次导出都是在此目录下,以表名命名的。

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --where ''country='usa'''


--where:指定导出部分数据的条件

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --table cities -P


-p:动态的数据密码,安全

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --table cities --password-file my-sqoop-password


--password-file:指定密码文件,安全

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --as-sequencefile


--as-sequencefile:指定导出的数据以sequencefile文件格式保存

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --as-avrodatafile


--as-avrodatafile:指定导出的数据以avrodatafile文件格式保存

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --num-mappers 10


--num-mappers 10:指定运行的map数据量

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --null-string '\\N' --null-non-string '\\N'


--null-string '\\N' --null-non-string '\\N':指定mysql中的null在导出后以\n保存

sqoop import connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --incremental append --check-column id --last-value 1


--incremental append:指定导出新增的数据
--check-column id:指定导出针对新增的标准是id
--last-value 1:指定从id=1之后插入的数据


[b]export[/b]:

sqoop export -Dsqoop.export.records.per.statement=10 --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --export-dir cities --batch


--batch:指导入是批量的导入
-Dsqoop.export.records.per.statement=10:指定批量导入一次的数据条数

sqoop export --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --export-dir cities --staging-table staging_cities


--staging-table:指定导入时的零时表,只有当数据完全导入成功后,才会将数据导入到目标表中,如果中间出现失败则会将零时表中的数据删除,这样就保证了原子性,从而不会出现脏读

sqoop export --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --export-dir cities --update-key id


--update-key:指定依据什么字段来更新表,即当id一样时,则就更新这条记录

sqoop export --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --export-dir cities --update-key id --update-mode allowinsert


--update-key:指定依据什么字段来更新表,即当id一样时,则就更新这条记录
-update-mode allowinsert:指定除了可以更新数据之外,其余不相等的数据同样可以插入表中

sqoop export --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --export-dir cities --columns country,city


--columns:指定要插入的列名


[b]sqoop与hive结合[/b]:

sqoop import --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --hive-import


--hive-import:指定从hive中导出

[b]sqoop与hbase结合[/b]:

sqoop export --connect jdbc:mysql://mysql.example.com/sqoop --username sqoop --password   sqoop --table cities --hbase-table cities --column-family world


--hbase-table:指定hbase的表名
--column-family:指定hbase表的列族名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值