一、Start任务调度
当我们刚接触kettle时,我们为了方便测试和演示作业的效果,常常通过Start组件来定时完成作业的调度。 在我们的作业里头,我们选择通用,然后选择一个START组件,双击打开,我们就可以看到,START组件可以通过勾选重复,按照我们的要求来定时运行我们的作业。
如下图所示,我们设置作业每小时运行一次,然后我们可以在日志栏详细看到我们的运行记录,包括运行时长,读取、删除、插入、更新那些记录。
总结:这种方式,操作简单,随时可以监控到运行情况,但需要打开kettle软件才能运行,且长时间运行,会因为出现错误导致,定时任务失败,一般用于测试和调度读取CSV和EXCEL文件的场景。
二、winds任务调度
上面讲到通过Start组件来定时调用作业,但这种方法容易导致运行失败,也会因为服务器重启导致调度任务被强制关闭而终止。接下来介绍一种在后台运行,无需打开kettle程序即可定时调度作业的方法。首先我们来看一个调度案例,对应调度脚本由bat脚本组成,脚本内容包括三个部分。调度用到的exe程序、作业的位置、日志保持的位置及级别。
如: cd D:\kettle\pdi-ce-5.4.0.1-130\data-integration kitchen.bat /file D:\etl\数采实时数据\生产日报\生产日报-集团\集团生产日报作业.kjb /level Basic>>D:\kettle\log\fjl_%date:~0,4%%date:~5,2%%date:~8,2%.log
编写好的脚本,通过定时任务进行调度来完成整个定时作业的执行。
添加到window的任务计划程序中,并设置需要执行的频率。
总结:此方法,可以并发执行同一个或者多个作业,运行稳定,抗干扰能力强,但容易占用太多kettle缓存,出现kettle作业运行失败的问题。