本文共 1280 字,大约阅读时间需要 4 分钟。
ETL工具Sqoop的入门学习(二)
对于sqoop将MySQL某一张表的全量导入hdfs上和hdfs上的数据全量导出到MySQL中的某一张表可查看这里
对数据来源感兴趣的伙伴可以参考这篇博客eval语句就是用来检验我们的sql语句是否正确,相当于数据库的一个客户端对数据库的操作。
i,eval条件查询语句(这里我用脚本方式编写,方便二次书写) 查询mum大于4的子段#bin/bashecho "开始执行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/bashecho "开始执行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')"
插入结果
增量导入概念:根据数据库中某一字段,增加的导入数据,在HDFS上单独形成一个文件。
编写脚本命令,指定num列的第三个3字段开始增量导入,前3个字段不存在记录中
重要参数理解 –incremental append 表明增量导入 –check-column num 检查的是mysql数据库表中的num字段 –last-value 3 从id=4开始往后导入#bin/bashecho "开始执行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 2echo "执行sqoop import增量导入完成"#注意:增量导入的时候,不能加参数--delete-target-dir否则会报错
执行成功
查看结果 与我们的MySQL中的数据对比,从第四条数据包括第四条数据都被导入hdfs中。转载地址:http://aeqzi.baihongyu.com/