SqoopExport-Hive到RDBMS

其实只要掌握了import的用法,export也就分分钟的事就搞定了。因为很多也是通用的,比如–connect,–username,–password,–table,–columns,-m等,还比如上节所说的direct,options-file,job。
最大的不同可能就是–target-dir换成了–export-dir

export参数概览

[root@master bin]# ./sqoop export --help
Common arguments:
    --connect <jdbc-uri> 
    --help 
    --password <password> 
    --username <username> 
Export control arguments:
    --columns <col,col,col...> 指定列
    --direct 加快速度导出
    --export-dir <dir> 需要导出的文件路径
-m,--num-mappers <n> 
    --table <table-name> 导出到RDBMS中的哪个表中
    --update-key <key> 根据指定的key进行更新操作
    --update-mode <mode> update的模式

案例1:HDFS文件导出到Mysql

[root@master bin]#./sqoop export --connect jdbc:mysql://master:3306/employees \
--username root --password 123456 \
--table hdfs_export \
--direct \
-m 1 \
--export-dir /user/sqoop/import/employees/part-m-00000

mysql> select * from hdfs_export;
+------------+--------------------+
| id | name |
+------------+--------------------+
| d009 Custo | NULL |
| d005 Devel | NULL |
| d002 Finan | NULL |
| d003 Human | NULL |
| d001 Marke | NULL |
| d004 Produ | NULL |
| d006 Quali | NULL |
| d008 Resea | NULL |
| d007 Sales | NULL |
+------------+--------------------+

为什么是这个鬼样子呢??因为没有指定分隔符,加上–fields-terminated-by ‘\t’ 就没问题了!

案例2:HIVE导出到Mysql

HIVE导出实际上就是HDFS文件导出,因为HIVE也是以文件的形式存储在HDFS中的。
首先找到HIVE表对应的HDFS目录,比如我这里是 /user/hive/warehouse/stu/000000_0
然后注意一下Hive默认的分隔符是\001

[root@master bin]# ./sqoop export --connect jdbc:mysql://master:3306/weblog \
--username root --password 123456 \
--table stu1 \
--export-dir /user/hive/warehouse/stu/000000_0 \
--fields-terminated-by '\001' \
-m 1

案例3:通过UPDATE方式将HIVE导出到Mysql

之前两个案例,都是全量导入Mysql的,比如mysql中有数据”2,lyl”;hive中有数据”2,bdstar” 导入后mysql中有”2,lyl 2,bdstar”。
如果你希望做更新操作,即最后mysql中数据仅是”2,bdstar”。那么就需要用到–update-key

[root@master bin]# ./sqoop export --connect jdbc:mysql://master:3306/weblog \
--username root --password 123456 --table stu1 \
--export-dir /user/test.txt \
--fields-terminated-by ',' \
--update-key id -m 1

注意:如果使用–update-mode allowinsert那么效果和案例1 2 是一样的 全量插入

BDStar原创文章。发布者:Liuyanling,转载请注明出处:http://bigdata-star.com/archives/983

猜你喜欢

转载自blog.csdn.net/someInNeed/article/details/115360486