本文接上一篇,只写到读取日志。在平时工作当中,会遇到这种情况,而且很常见。比如:增量抽取(每隔2个小时抽取截至到上次抽取时间的记录)
本文中会用到作业,先来熟悉下作业的概念
简单地说,一个转换就是一个ETL的过程,而作业则是多个转换、作业的集合,在作业中可以对转换或作业进行调度
实际情况中,每次抽取完毕,会写入日志表,记录本次抽取时间,下次抽取会根据本次抽取的成功时间,开始获取数据进行抽取。
我们可以使用作业来完成调度任务,需要用到调度控件【start】和【成功】这两个。
【start】可以控制执行频率,控制什么时间执行,间隔多长时间执行都可以进行配置,还是比较方便的。
下面需要这5个控件来完成,我们逐一看下每个控件是怎么使用的。
![](https://img.haomeiwen.com/i20462042/075b245822873a44.png)
1)【start】控件。
如下图,该控件可以配置定时执行时间和时间间隔,是否重复等。为了实时抽取,我们把重复给勾选上,类型选中时间间隔,以分钟计算,每60分钟执行一次作业。
![](https://img.haomeiwen.com/i20462042/35a9f2d8bf59bdc3.png)
2)【转换1】-获取student表的更新时间,我们点击右键,进入转换的编辑页面
![](https://img.haomeiwen.com/i20462042/17458493698b8fa1.png)
![](https://img.haomeiwen.com/i20462042/a119cc5261e03feb.png)
点击获取student表输入控件,进入如下界面,填写相应的sql-具体的例子见附件
![](https://img.haomeiwen.com/i20462042/301689235946046a.png)
点击【设置变量】,将表输入的结果放入变量中。
![](https://img.haomeiwen.com/i20462042/494ce649c3938360.png)
3)【转换2】-student表作业,我们点击右键,进入转换的编辑页面,设置相应的表输入和表输出项,如下图
![](https://img.haomeiwen.com/i20462042/22e58c350ad8610b.png)
![](https://img.haomeiwen.com/i20462042/58d9e8f0e7772423.png)
4)【转换3】-写同步日志,我们点击右键,进入转换的编辑页面,此处包含一个【sql脚本】,写入sql后点击保存
![](https://img.haomeiwen.com/i20462042/4a9a2cd5230963a9.png)
转换完成。
效果每次隔1个小时抽取,写入日志表。下次抽取日志表之后的数据。
欢迎关注公众号,学习kettle、数据库和开发方面的知识
获取例子源码,扫描下方二维码加关注
![](https://img.haomeiwen.com/i20462042/44e69a006af526ce.png)
网友评论