大数据培训学习命令&参数-import

发布时间:2020年01月23日作者:atguigu浏览次数:810

2.5 命令&参数:import

将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中,如果导入的是Hive,那么当Hive中没有对应表时,则自动创建。

1) 命令:

如:导入数据到hive中

$ bin/sqoop import \

–connect jdbc:mysql://hadoop102:3306/company \

–username root \

–password 000000 \

–table staff \

–hive-import

 

如:增量导入数据到hive中,mode=append

append导入:

$ bin/sqoop import \

–connect jdbc:mysql://hadoop102:3306/company \

–username root \

–password 000000 \

–table staff \

–num-mappers 1 \

–fields-terminated-by “\t” \

–target-dir /user/hive/warehouse/staff_hive \

–check-column id \

–incremental append \

–last-value 3

尖叫提示:append不能与–hive-等参数同时使用(Append mode for hive imports is not yet supported. Please remove the parameter –append-mode)

 

如:增量导入数据到hdfs中,mode=lastmodified

先在mysql中建表并插入几条数据:

mysql> create table company.staff_timestamp(id int(4), name varchar(255), sex varchar(255), last_modified timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

mysql> insert into company.staff_timestamp (id, name, sex) values(1, ‘AAA’, ‘female’);

mysql> insert into company.staff_timestamp (id, name, sex) values(2, ‘BBB’, ‘female’);

先导入一部分数据:

$ bin/sqoop import \

–connect jdbc:mysql://hadoop102:3306/company \

–username root \

–password 000000 \

–table staff_timestamp \

–delete-target-dir \

–m 1

再增量导入一部分数据:

mysql> insert into company.staff_timestamp (id, name, sex) values(3, ‘CCC’, ‘female’);

$ bin/sqoop import \

–connect jdbc:mysql://hadoop102:3306/company \

–username root \

–password 000000 \

–table staff_timestamp \

–check-column last_modified \

–incremental lastmodified \

–last-value “2017-09-28 22:20:38” \

–m 1 \

–append

尖叫提示:使用lastmodified方式导入数据要指定增量数据是要–append(追加)还是要–merge-key(合并)

尖叫提示:last-value指定的值是会包含于增量导入的数据中

2) 参数:

序号

参数

说明

1

–append

将数据追加到HDFS中已经存在的DataSet中,如果使用该参数,sqoop会把数据先导入到临时文件目录,再合并。

2

–as-avrodatafile

将数据导入到一个Avro数据文件中

3

–as-sequencefile

将数据导入到一个sequence文件中

4

–as-textfile

将数据导入到一个普通文本文件中

5

–boundary-query <statement>

边界查询,导入的数据为该参数的值(一条sql语句)所执行的结果区间内的数据。

6

–columns <col1, col2, col3>

指定要导入的字段

7

–direct

直接导入模式,使用的是关系数据库自带的导入导出工具,以便加快导入导出过程。

8

–direct-split-size

在使用上面direct直接导入的基础上,对导入的流按字节分块,即达到该阈值就产生一个新的文件

9

–inline-lob-limit

设定大对象数据类型的最大值

10

–m或–num-mappers

启动N个map来并行导入数据,默认4个。

11

–query或–e <statement>

将查询结果的数据导入,使用时必须伴随参–target-dir,–hive-table,如果查询中有where条件,则条件后必须加上$CONDITIONS关键字

12

–split-by <column-name>

按照某一列来切分表的工作单元,不能与–autoreset-to-one-mapper连用(请参考官方文档)

13

–table <table-name>

关系数据库的表名

14

–target-dir <dir>

指定HDFS路径

15

–warehouse-dir <dir>

与14参数不能同时使用,导入数据到HDFS时指定的目录

16

–where

从关系数据库导入数据时的查询条件

17

–z或–compress

允许压缩

18

–compression-codec

指定hadoop压缩编码类,默认为gzip(Use Hadoop codec default gzip)

19

–null-string <null-string>

string类型的列如果null,替换为指定字符串

20

–null-non-string <null-string>

非string类型的列如果null,替换为指定字符串

21

–check-column <col>

作为增量导入判断的列名

22

–incremental <mode>

mode:append或lastmodified

23

–last-value <value>

指定某一个值,用于标记增量导入的位置

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园综合楼3层(成都校区)