Sqoop的常用命令如下表所示
命令 | 说明 |
---|
list-databases | 列出所有数据库名 |
list-tables | 列出某个数据库下所有表 |
import | 将数据导入到HDFS集群 |
export | 将HDFS集群数据导出 |
help | 打印sqoop帮助信息 |
version | 打印sqoop版本信息 |
对于不同的命令,有不同的参数,接下来我们来一一列举说明。
首先是公用的参数,所谓公用参数,就是大多数命令都支持的参数。最常用的公共参数是数据库连接的参数,如下表所示:
参数 | 说明 |
---|
–connect | 连接关系型数据库的URL |
–username | 连接数据库的用户名 |
–password | 连接数据库的密码 |
import命令用于将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中。如果是导入到Hive,那么当Hive中没有对应表时,会自动创建。Import命令的常用参数如下表所示:
参数 | 说明 |
---|
–fields-terminated-by | Hive中的列分隔符,默认是逗号 |
–lines-terminated-by | Hive中的行分隔符,默认是\n |
–append | 将数据追加到HDFS中已经存在的DataSet中,如果使用该参数,sqoop会把数据先导入到临时文件目录,再合并。 |
–columns | 指定要导入的字段 |
–m或–num-mappers | 启动N个map来并行导入数据,默认4个。 |
–query或–e | 将查询结果的数据导入,使用时必须伴随参–target-dir,–hive-table,如果查询中有where条件,则条件后必须加上$CONDITIONS关键字 |
–table | 关系数据库的表名 |
–target-dir
| 指定导入数据存储的HDFS路径 |
–null-string | string类型的列如果null,替换为指定字符串 |
–null-non-string | 非string类型的列如果null,替换为指定字符串 |
–check-column | 作为增量导入判断的列名 |
–incremental | mode:append或lastmodified |
–last-value | 指定某一个值,用于标记增量导入的位置 |
export命令用于将HDFS(包括Hive和HBase)中的数据导出到关系型数据库中。Export命令中常用的参数如下表所示:
参数 | 说明 |
---|
–input-fields-terminated-by | Hive中的列分隔符,默认是逗号 |
–input-lines-terminated-by | Hive中的行分隔符,默认是\n |
–export-dir | 存放数据的HDFS的源目录 |
-m或–num-mappers | 启动N个map来并行导出数据,默认4个 |
–table | 指定导出到哪个RDBMS中的表 |
–update-key | 对某一列的字段进行更新操作 |
–update-mode | updateonly或allowinsert(默认) |