附:Kettle实战视频教程,需要的朋友可以看看学习下哈~~

本文接上一篇,只写到读取日志。在平时工作当中,会遇到这种情况,而且很常见。比如:增量抽取(每隔2个小时抽取截至到上次抽取时间的记录)

本文中会用到作业,先来熟悉下作业的概念
简单地说,一个转换就是一个ETL的过程,而作业则是多个转换、作业的集合,在作业中可以对转换或作业进行调度
实际情况中,每次抽取完毕,会写入日志表,记录本次抽取时间,下次抽取会根据本次抽取的成功时间,开始获取数据进行抽取。
我们可以使用作业来完成调度任务,需要用到调度控件【start】和【成功】这两个。
【start】可以控制执行频率,控制什么时间执行,间隔多长时间执行都可以进行配置,还是比较方便的。

下面需要这5个控件来完成,我们逐一看下每个控件是怎么使用的。

kettle 更新mysql表数据_控件

1)【start】控件。

如下图,该控件可以配置定时执行时间和时间间隔,是否重复等。为了实时抽取,我们把重复给勾选上,类型选中时间间隔,以分钟计算,每60分钟执行一次作业。

kettle 更新mysql表数据_kettle 更新mysql表数据_02

2)【转换1】-获取student表的更新时间,我们点击右键,进入转换的编辑页面

kettle 更新mysql表数据_配置文件_03


kettle 更新mysql表数据_控件_04


点击获取student表输入控件,进入如下界面,填写相应的sql-具体的例子见附件

kettle 更新mysql表数据_kettle 更新mysql表数据_05


点击【设置变量】,将表输入的结果放入变量中。

kettle 更新mysql表数据_kettle 更新mysql表数据_06

3)【转换2】-student表作业,我们点击右键,进入转换的编辑页面,设置相应的表输入和表输出项,如下图

kettle 更新mysql表数据_配置文件_07


kettle 更新mysql表数据_配置文件_08

4)【转换3】-写同步日志,我们点击右键,进入转换的编辑页面,此处包含一个【sql脚本】,写入sql后点击保存

kettle 更新mysql表数据_kettle 更新mysql表数据_09


转换完成。

效果每次隔1个小时抽取,写入日志表。下次抽取日志表之后的数据。