在实际项目中往往需要使用定时更新数据,当Kettle的转换比较多的时候,手动一个个执行转换有点不太现实,今天就分享怎么完成定时更新数据。如果其中有些步骤看不懂的话可以看我Kettle分类下的另一篇文章
增量更新包括三个组件(我拿之前做好的来示范,刚添加完三个组件之后,组件之间的连接线都是只有一个箭头,当完成表输入2的配置之后,表输入到表输入2的连接线就会变成这张图一样)
先配置第一个表输入,第一个表输入的数据库连接为ODS层所在的数据库
select max(ts) ts from ods层的表名
配置第二个表输入,第二个表输入的数据库连接是源数据所在的数据库,不要和第一个表输入的数据库连接搞混了,顺序也别错了。
SELECT * FROM 源数据表名 WHERE ts>?
点击确定之后可以看到表输入到表输入2的连接发生了变化,这里可以参考第一张图。
保存后点击启动
定时作业
新建一个作业;
先把需要的组件添加进去,中间的两个转换根据自己的需求添加,前提是需要把ODS层的转换在DW前面;
新建一个.bat文件并往里添加内容,可以跟转换文件和作业文件放到同一个文件夹目录下;
保存后双击bat执行(只是测试bat文件是否运行成功),出现命令窗口,不要手动关闭;命令窗口消失后,查看日志log文件,出现执行成功提示,测试bot执行成功;
创建任务:Windows键+R 调出窗口,输入compmgmt.msc (调用的是计算机管理),打开窗口后先在左边任务计划程序库列表新建一个kettle定时计划文件夹,再点击右边的创建任务;
创建任务二第盯视情况根据自己的需求决定;
新建一个触发器;
选择执行的bat文件;
确定后,输入服务器登录密码或者windows登录密码;
定时执行bat文件需要让电脑在你设置的更新时间段里保持开机状态,否则无法执行。