sqoop import and export

阅读更多
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)