sqoop job 增量导入
使用sqoop job做增量导入
在执行导入模式为 incremental 的sqoop job 时,sqoop会获取上次导入操作的 –check-column的value值,也就是说使用sqoop job在做增量导入的时候,不用手动指定 --last-value的值
但是也有这样的一种情况,sqoop job中如果指定了--incremental 为append模式导入,在指定了增量列--check-column之后,比如id为增量列,并且指定了--last-value的值,比如设置为100,那么在执行sqoop job的时候就会将id>100的行导入到hive中去
增量导入举个例子
- mysql建表
 
CREATE TABLE `sqoop_job_incremental` (
`id` int() DEFAULT NULL,
`name` varchar() DEFAULT NULL,
`last_mod` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
- mysql插入数据
 
insert into sqoop_job_incremental(id,name) values(,'name1');
insert into sqoop_job_incremental(id,name) values(,'name2');
insert into sqoop_job_incremental(id,name) values(,'name3');
- 此时mysql中的数据
 
name1 -- ::
name2 -- ::
name3 -- ::
- 将mysql表结构同步到hive中
 
sqoop create-hive-table --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_job_incremental
--hive-table sqoop_job_incremental --fields-terminated-by ','
- 新建增量导入的sqoop job
 
sqoop job --create sqoop_job_incremental -- import --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_job_incremental
--hive-import --hive-table sqoop_job_incremental --check-column last_mod --incremental lastmodified --fields-terminated-by ',' -m 1
- 执行job
 
sqoop job --exec sqoop_job_incremental
- 查看hive结果
 
hive> select * from sqoop_job_incremental
> ;
OK
name1 -- ::56.0
name2 -- ::13.0
name3 -- ::20.0
- 加入增量数据
 
insert into sqoop_job_incremental(id,name) values(,'name4');
insert into sqoop_job_incremental(id,name) values(,'name5');
- 此时mysql表中的数据
 
name1 -- ::
name2 -- ::
name3 -- ::
name4 -- ::
name5 -- ::
- 执行job
 
sqoop job --exec sqoop_job_incremental
因为--check-column 为 last_mod(数据更改时间),sqoop在本次执行任务的时候获取到上次任务执行的last_mod值,只导入大于last_mod的数据.
- 查看hive中的结果
 
hive> select * from sqoop_job_incremental;
OK
name1 -- ::56.0
name2 -- ::13.0
name3 -- ::20.0
name4 -- ::02.0
name5 -- ::09.0
Time taken: 1.649 seconds, Fetched: row(s)
发现第二次执行job任务只导入了两条,这两条就是上次任务之后新添加的数据。
每次执行任务都会提示输入密码,可通过配置取消这一提示,直接使用job中指定的密码
在conf/sqoop-site.xml文件中配置
sqoop.metastore.client.record.password
设置为true即可。
sqoop job 增量导入的更多相关文章
- sqoop定时增量导入导出
		
sqoop定时增量导入 2013-11-06 14:23 4553人阅读 评论(0) 收藏 举报 sqoop使用hsql来存储job信息,开启metastor service将job信息共享,所有no ...
 - sqoop的增量导入(increment import)
		
1.import增量导入的官方说明
 - sqoop job 实现自动增量导入
		
一.测试环境 1.MySQL表结构 mysql> show create table autoextend\GCREATE TABLE `autoextend` ( `id` bigint(2 ...
 - Sqoop实现自定义job的增量导入
		
需求:redis缓存的数据隔段时间往MySQL中写入一次.如果按照job的增量导入,比如上次redis向mysql导入数据时间为8:00,下一次导入时间为9:00,8:20sqoop进行增量导入,导入 ...
 - Sqoop增量导入
		
Argument Description --check-column (col) Specifies the column to be examined when determining which ...
 - Sqoop修改sqoop元信息实现job的增量导入
		
最简单方式是按主键增量导入:http://blog.csdn.net/ggz631047367/article/details/50185319 以下方法只做存档 需求:redis缓存的数据隔段时间往 ...
 - 大数据之路week07--day07 (Sqoop 从mysql增量导入到HDFS)
		
我们之前导入的都是全量导入,一次性全部导入,但是实际开发并不是这样,例如web端进行用户注册,mysql就增加了一条数据,但是HDFS中的数据并没有进行更新,但是又再全部导入一次又完全没有必要. 所以 ...
 - 第3节 sqoop:6、sqoop的数据增量导入和数据导出
		
增量导入 在实际工作当中,数据的导入,很多时候都是只需要导入增量数据即可,并不需要将表中的数据全部导入到hive或者hdfs当中去,肯定会出现重复的数据的状况,所以我们一般都是选用一些字段进行增量的导 ...
 - Sqoop(四)增量导入、全量导入、减量导入
		
增量导入 一.说明 当在生产环境中,我们可能会定期从与业务相关的关系型数据库向Hadoop导入数据,导入数仓后进行后续离线分析.这种情况下我们不可能将所有数据重新再导入一遍,所以此时需要数据增量导入. ...
 
随机推荐
- sass的脑图
 - TRIZ系列-创新原理-23-反馈原理
			
 反馈原理的详细表述例如以下:1)引入反馈:2)假设已经有反馈,那么改变它这个原理告诉我们应当从系统中尽量多收集反馈信息.并用这些信息来矫正系统的作用.非常easy看出,引入反馈是系统自己主动控制 ...
 - SpringBoot Idea 启动报错 Process finished with exit code 1
			
问题描述:没有其他任何错误日志,只有Process finished with exit code 1 问题原因:Maven POM.xml问题造成 由于是properties是我直接从其他项目中拷贝 ...
 - PHP性能之语言性能优化:魔术方法好不好?
			
魔术方法是什么鬼? 魔术方法,也叫魔鬼函数.只要学过PHP的都知道什么是魔术方法,魔术方法就是在某些条件下自动执行的函数. PHP的魔术方法主要有下面几个,其他的参考PHP官方手册 __constru ...
 - nginx 查看接口请求时间  每个请求图片的时间或者文件的
			
根据nginx的access_log查看接口请求时间 muyuren 发表于 1年前 阅读 2300 收藏 0 推荐 0 评论 0 推荐 收藏 首先修改修改生成日志的格式,在nginx配置文件的htt ...
 - C语言基础知识【运算符】
			
C 运算符1.运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符2.杂项运算符 ↦ ...
 - Laravel开发:多用户登录验证(1)
			
之前实现了一次,后来代码忘记放哪了,所以有跳了一次坑. 先贴上Laravel自带的验证代码: 路由:routes/web.php // Authentication Routes... $this-& ...
 - EasyNVR结合阿里云/腾讯云CDN实现微信/小程序直播的方案
			
背景需求: 许多客户有这样的需求:微信公众号做为平台来对摄像机进行直播:可以让用户随时随地打开公共号就可以观看:保证画面的流畅性:保证视频的并发访问量等. 问题分析: 虽然需求看似很简单,其实真正实现 ...
 - 配置过滤器filter对跨站脚本攻击XSS实现拦截
			
1.web.xml中配置filter [html] view plain copy <filter> <filter-name></filter-name> & ...
 - hdu 4068 I-number【大数】
			
题目: http://acm.hdu.edu.cn/showproblem.php?pid=4608 http://acm.hust.edu.cn/vjudge/contest/view.action ...