如何使用kettle自带的‘Star’定时功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用kettle自带的‘Star’定时功能相关的知识,希望对你有一定的参考价值。

参考技术A 打开‘File’—‘New’—‘Job’,新建一个任务Job

创建数据库连接
为任务Job创建一个数据库连接即指向PC01的连接,双击Job视图窗口的‘Database Connection’弹出配置界面

创建任务关系
打开任务设计窗口‘General’将‘START’和’Transformation’图标拖入右侧窗口,再将‘Scripting’中‘SQL’拖入右侧窗口,并将图标连接起来。

配置START信息
双击图标‘START’,弹出配置窗口
Repeat:重复—将此项勾选,表示按下面配置的周期重复
Type:周期类型—Weekly,按周重复
Time of day:时分设置—当天的17:10
Day of week:星期选择—Saturday,定在每周六执行

编写SQL语句
因为上述编写过的转换只能实现将PC02的数据抽取到PC01中(即将PC01与PC02中共有的数据更新和PC01中没有而PC02中有的数据插入PC01中),而不能实现保持PC01与PC02数据完全相同(即不能将PC02中已经没有的数据从PC01中删除),所以在执行转换前要编写个SQL语句,在插入PC02数据之前将PC01中的数据先清空,双击‘SQL’图标,弹出配置界面

导入转换
双击‘Transformation’图标,将已经编写好的转换导入进来

运行任务
点击菜单, 执行Job,弹出窗口,点击‘Lanuch’

使用windows自带任务计划管理程序定时 调用Kettle作业

系统平台:windows系统,其他操作系统请参考其他资料。

 

Kettle自带的定时任务调度不太稳定,而且必须打开Kettle,可以通过windows的任务计划程序调用Kettle的Kitchen.bat来实现定时作业。

网上找了一些Kitchen.bat的参数,也是一知半解,没有深入研究。

kitchen.bat   后面可以是-也可以是/然后再加options

Options:
/rep        : Repository name
/user       : Repository username
/pass       : Repository password
/job        : The name of the job to launch
/dir        : The directory (dont forget the leading /)
/file       : The filename (Job XML) to launch
/level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
/logfile    : The logging file to write to
/listdir    : List the directories in the repository
/listjobs   : List the jobs in the specified directory
/listrep    : List the available repositories
/norep      : Do not log into the repository
/version    : show the version, revision and build date
/param      : Set a named parameter =. For example -param:FOO=bar
/listparam : List information concerning the defined parameters in the specified job.
/export     : Exports all linked resources of the specified job. The argument is the name of a ZIP
file.

而options 后面可以是=也可以是:也可以是空格

kitchen.bat /file d:\\   或者 -file=D:\\ 或者/file:D:\\等等都可以。。。

下面正式开始创建调用方案

1:创建启动文件,用于被windows任务计划程序调用

  新建文本文件,重命名为   "每日9点执行.bat",文件右键编辑,以文本文件方式打开,然后复制下面内容进去,保存。

1 D:
2 cd D:\\pdi-ce-6.0.0.0-353\\data-integration
3 kitchen.bat -rep:XXX -dir:/ -job:"XXX" -user:XXX -pass:XXX -level:Basic -log:D:\\kettlebat\\log\\每日9点执行%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.txt

 注:第一行D:到第三行的kitchen.bat为打开Kettle的Kitchen.bat,该文件一般在Kettle的根目录,请根据实际保存路径修改。

-rep:后的XXX修改为资源库名称,-job:后的XXX修改为要执行的作业名称,-user:和-pass:后的XXX为资源库的帐号密码,

-level为日志级别,共有Basic, Detailed, Debug, Rowlevel, Error, Nothing六种级别,此处使用Basic,其它级别自行测试,

-log后为日志保存路径,路径中的%date和%time是在创建日志的时候给日志名添加上时间。

2:添加任务计划
右键计算机或者我的电脑,选择管理,选择任务计划程序。或者通过其他方式打开,总之打开任务计划程序就对了。

点击右侧创建基本任务,输入任务名称,点击下一步设置触发器,点击下一步设置具体的触发条件,这里可以设置成各种各样的定时任务。

点击下一步设置操作为启动程序,然后选择上面创建的  每日9点执行.bat,然后点击完成即可。

上面为创建基本任务,设置比较简单,功能比较弱,建议创建任务时直接点击创建任务,指定更加可靠的任务,比如设置不管用户是否登录都要运行、设置任务失败后的重启次数、设置任务的超时时间等。

 

主要代码来自于前辈翟大神,敬礼。

 


以上是关于如何使用kettle自带的‘Star’定时功能的主要内容,如果未能解决你的问题,请参考以下文章

kettle 如何定时运行多个任务(用kettle已经做好的 '.ktr' 文件)

使用windows自带任务计划管理程序定时 调用Kettle作业

编写bat脚本,让windows定时执行kettlejob,实现kettle调度

Kettle作业定时调度

ETL工具kettle怎么做定时任务

kettle定时每天同步数据如何避免重复