ETL工具Sqoop的入门学习(二)之eval语句使用以及import的增量导入。

ETL工具Sqoop的入门学习(二)

回顾

对于sqoop将MySQL某一张表的全量导入hdfs上和hdfs上的数据全量导出到MySQL中的某一张表可查看这里ETL工具Sqoop的入门学习(一)
对数据来源感兴趣的伙伴可以参考这篇博客python 爬取应届生求职网中的求职信息并存入MySQL数据库

1,eval语句-查询数据插入数据

eval语句就是用来检验我们的sql语句是否正确,相当于数据库的一个客户端对数据库的操作。
i,eval条件查询语句(这里我用脚本方式编写,方便二次书写)
查询mum大于4的子段

#bin/bash
echo "开始执行eval查询语句"
ip="your IP"
db="spider"
pwd="1234567"
sqoop eval --connect jdbc:mysql://$ip:3306/$db \
--username root --password $pwd \
--query "select * from job where num >4"

查询结果
在这里插入图片描述
ii,eval插入语句,将数据插入到MySQL中

#bin/bash
echo "开始执行eval插入语句"
ip="your IP"
db="spider"
pwd="1234567"

sqoop eval --connect jdbc:mysql://$ip:3306/$db \
--username root --password $pwd \
--query "insert into job values(74,'阿里巴巴','p7','杭州','alibaba','2020-05-08')"

插入结果
在这里插入图片描述

2,import的增量导入将数据增量从MySQL导入HDFS

增量导入概念:根据数据库中某一字段,增加的导入数据,在HDFS上单独形成一个文件。

编写脚本命令,指定num列的第三个3字段开始增量导入,前3个字段不存在记录中
重要参数理解
–incremental append 表明增量导入
–check-column num 检查的是mysql数据库表中的num字段
–last-value 3 从id=4开始往后导入

#bin/bash
echo "开始执行import导入"
ip="your local ip"
db="spider"
pwd="1234567"
tar_dir="import"
table_name="job"

sqoop import --connect jdbc:mysql://$ip:3306/$db \
--username root --password $pwd \
--table $table_name \
--target-dir /sqoop/$tar_dir \
--incremental append \
--check-column num \
--last-value 3
--m 2
echo "执行sqoop import增量导入完成"
#注意:增量导入的时候,不能加参数--delete-target-dir否则会报错

执行成功
在这里插入图片描述
查看结果
在这里插入图片描述
与我们的MySQL中的数据对比,从第四条数据包括第四条数据都被导入hdfs中。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值