欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sqoop import and export

程序员文章站 2022-05-25 14:26:38
...
import:

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之后插入的数据


export

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:指定要插入的列名


sqoop与hive结合

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


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

sqoop与hbase结合

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表的列族名
相关标签: sqoop haoop