已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job.
(1)先说手工调用:
进入cmd
C:\Users\Administrator>E:--切换到kettle所在解压盘
E:\>cd pdi-ce-4.2.0-stable\data-integration--切换到解压目录
E:\pdi-ce-4.2.0-stable\data-integration>kitchen.bat -rep enfo -user wxj -pass wxj1988 -dir /works/wxj -job testmailsuccess--执行命令
效果如下:
同时发出邮件通知:
命令也可以替换为:用下面的方式,执行日志写入指定的目录文件中:
E:\pdi-ce-4.2.0-stable\data-integration>kitchen.bat -rep enfo -user wxj -pass wxj1988 -dir /works/wxj -job testmailsuccess -level=basic>d:
\kettlelog\a.log
日志和控制台显示的一样如图
(2):系统调度kettle job
利用window下的任务计划调用批处理命令,即.bat批处理命令,在d盘中创建了一个testjob.bat
内容如下:
----------------------------------------------------------------------------------------------------------------------------------
e:
cd pdi-ce-4.2.0-stable\data-integration
kitchen.bat -rep enfo -user wxj -pass wxj1988 -dir /works/wxj -job testmailsuccess -level=basic>d:\kettlelog\testmailsuccess1.log
-----------------------------------------------------------------------------------------------------------------------------------
双击testjob.bat执行效果
说明执行此批处理文件就可以起到执行此job的效果,接下来让系统定时的执行此批处理命令,就起到了定时调度kettle job的作用。
找到系统的任务计划,创建任务:
1:填写名称和描述,下一步
2:指定执行频率,下一步
3:指定每天执行的时间点,下一步
4:选择启动程序即可,下一步
5:选择批处理文件所在目录,下一步
6任务创建完成,看任务列表
OK,保证服务器在运行的情况下,任务和计划就会每天定时的执行批处理文件,起到调度ETL程序的作用。