热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqoop导出建表_Sqoop导入及导出表数据子集命令详解

Sqoop命令详解1、import命令案例1:将mysql表test中的数据导入hive的hivetest表,hive的hivetest表不存在。sqo

Sqoop命令详解

1、import命令

案例1:将mysql表test中的数据导入hive的hivetest表,hive的hivetest表不存在。

sqoop import --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table my_user --hive-table hivetest --hive-import -m 1

案例2:在案例1的基础上,分别进行overwrite(覆盖)导入和into(直接加入)导入。

into: 命令同案例1

overwrite:

sqoop import --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table test --hive-table hivetest --hive-import -m 1 --hive-overwrite

案例3:在案例2的基础上,通过增加mysql的test表数据,增量导入到hive表中。

sqoop import --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table test --where "id>9" --hive-table hivetest --hive-import -m 1

或者

sqoop import --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table test --query "select id,name from test where id>9" --hive-table hivetest --hive-import -m 1

案例4:将test表中的数据导出到使用','分割字段的hive表(hivetest2)中。

创建表: create table hivetest2(id int,name string) row format delimited fields terminated by ',';

sqoop:

sqoop import --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table test --hive-table hivetest2 --hive-import -m 1 --fields-terminated-by ","

案例5:将PARTITIONS表的数据导入到hdfs中。

sqoop import --connect jdbc:mysql://hadoop-001:3306/metastore --username root --password 123456 --table  PARTITIONS --target-dir /wordcount -m 1

c804947226d4bb381081631ad31e9ecf.png

可以看到hdfs有生成文件

a7f6fc3887bd811ce7cf3453a6867417.png

cat一下

3937a87f14b4fb68ca0b86f8312bcd45.png

案例6:在案例5的基础上,增量导入数据到hdfs中。

sqoop import --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table test --target-dir /test -m 1 --check-column id --incremental append --last-value 11

2、export命令

案例1:将hdfs上的文件导出到关系型数据库test2表中。

./sqoop export --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456 --table tb_dept --export-dir /test/dept.txt

d80b62598907c19a2907e10c4ba475ef.png

案例2:将hive表(hivetest)数据导出到关系型数据库test2表中(使用insertOrUpdate方法导入)。

hivetest表只留id为1,2,3,4,5的数据,其他数据删除。

hivetest表分隔方式是'\u0001',但是export命令默认使用','分隔数据

sqoop export --connect jdbc:mysql://hadoop-001:3306/test --username root --password hive --table test2 --export-dir /hive/hivetest --input-fields-terminated-by "\\01" --update-mode

allowinsert --update-key id

3.其他命令

list-databases命令

sqoop list-databases --connect jdbc:mysql://hadoop-001:3306 --username root --password 123456

list-tables

sqoop list-tables --connect jdbc:mysql://hadoop-001:3306/default --username root --password 123456

create-hive-table命令

sqoop create-hive-table --connect jdbc:mysql://hadoop-001:3306/test --username root --password 123456--table test --hive-table hivetest

help命令

1. sqoop help

2. sqoop help list-tables

bdedf1ebb49fdb273aa74c0f17cde20d.png



推荐阅读
author-avatar
liangpengtao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有