Kettle定时任务(后台任务)

时间:2022-11-30 07:54:50

前面我们介绍了 Kettle的Spoon的转换和作业定时任务GUI设计方式以及运行,但是在实际应用中,我们需要计划任务是在服务器后台运行。

首先我们需要了解Kettle的Kitchen和Pan

Kitchen——作业(job)执行器 (命令行方式)

Pan——转换(trasform)执行器 (命令行方式)

下面我们将重点讲解经常会用到的 ***作业执行器 Kitchen.bat *** 。

Kitchen 参数说明:

-rep:Repository name 任务包所在存储名

-user:Repository username 执行人

-pass:Repository password 执行人密码

-job:The name of the job to launch 任务包名称

-dir:The directory (don''t forget the leading / or )

-file:The filename (Job XML) to launch

-level:The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别

-log:The logging file to write to 指定日志文件

-listdir:List the directories in the repository 列出指定存储中的目录结构。

-listjobs:List the jobs in the specified directory 列出指定目录下的所有任务

-listrep:List the defined repositories 列出所有的存储

-norep:Don''t log into the repository 不写日志

命令行执行配置方式

1、新建一个bat文件,命名job.bat,然后编辑,输入内容如下:

d: ## Kitchen.bat所在路径盘符 cd D:\software\Kettle7 ## Kitchen.bat所在目录 ## 作业(job)文件路径和日志文件路径 ## 执行kitchen执行job,并写入日志 kitchen /file:D:\KettleProject\job2.kjb /level:Base>>D:\KettleProject\test.log

注意:确保路径的正确性。

2、双击job.bat,即可运行。

后台运行配置方式

我们已经建立了命令行运行的bat文件,并且已经可以正确执行我们的ETL任务了,但是现在我们在运行bat后,桌面上面会一直存在一个控制台的黑窗口,我们可以使用bat命令中的隐藏窗口的命令。

修改我们的job.bat文件

@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit :begin :: d: ## Kitchen.bat所在路径盘符 cd D:\software\Kettle7 ## Kitchen.bat所在目录 ## 作业(job)文件路径和日志文件路径 ## 执行kitchen执行job,并写入日志 kitchen /file:D:\KettleProject\job2.kjb /level:Base>>D:\KettleProject\test.log

在此双击job.bat运行,我们将不会再看到控制台黑窗口继续保留在桌面上,并且等待设置的间隔时间后,我们可以看到日志文件记录。

···

2021/11/07 16:51:26 - Kitchen - Logging is at level : 基本日志

2021/11/07 16:51:26 - Kitchen - Start of run.

2021/11/07 16:51:31 - job2 - 开始执行任务

2021/11/07 16:51:31 - job2 - job2

2021/11/07 16:53:31 - job2 - 开始项[简单表同步]

2021/11/07 16:53:31 - 简单表同步 - Loading transformation from XML file [file:///D:/KettleProject/TEST2.ktr]

2021/11/07 16:53:31 - 简单表同步 - Using run configuration [Pentaho local]

2021/11/07 16:53:31 - 简单表同步 - Using legacy execution engine

2021/11/07 16:53:31 - TEST2 - 为了转换解除补丁开始 [TEST2]

2021/11/07 16:53:32 - 表输入.0 - Finished reading query, closing connection.

2021/11/07 16:53:32 - 表输入.0 - 完成处理 (I=3, O=0, R=0, W=3, U=0, E=0)

2021/11/07 16:53:32 - 插入 / 更新.0 - 完成处理 (I=3, O=0, R=3, W=3, U=1, E=0)