Kettle自带调度方式的缺陷:

程序必须始终运行‌:使用Kettle自带的调度功能时,Kettle程序必须始终运行:

1.导致内存的浪费

2.任务执行时若占用内存较高、或其他原因导致 spoon程序崩溃、无法持续调度ETL

3.服务器崩溃或重启,需要手动启动执行作业

故使用配置服务器自带的定时调度组件,提升调度稳定性

Linux系统:

1. 编写shell脚本,内容如下:

#!/bin/sh
. /etc/profile
/{kettle路径}/data-integration/kitchen.sh /file /{作业路径}/offline.kjb /level Error /logfile /{日志需要打印到的路径}/offline-kitchen.log

2. 使用crontab 进行定时配置,内容如下:

配置crontab,进入编辑页面

$ crontab -e

配置内容如下

# 20分钟执行一次

*/20 * * * * /{第一步创建的shell脚本路径}/offline.sh >> //{日志需要打印的路径}/offline-kitchen-log_$(date+\%Y-\%m-\%d).log 2>&1

配置好后键盘ESC,输入wq进行保存

验证调度配置:等待定时时间任务执行后配置的日志路径内查看执行日志

Windows系统:

1. 编写bat脚本,内容如下:

D:
cd {kettle路径}\data-integration\
kitchen.bat /file {作业路径}\offline.kjb /level Error /logfile {日志需要打印到的路径}\offline-kitchen.log

2. 使用windows计划任务 进行定时配置:

1.可以在任务栏的搜索框中输入“任务计划程序”关键字,然后从搜索结果中选择“打开”选项或者在开始菜单中搜索“控制面板”,然后打开控制面板并在搜索框中输入“任务计划程序”

2.配置定时任务,如下图

其他都默认点击下一页,一直到操作界面时,选择启动程序,然后选中步骤1创建的bat文件路径,如下图

配置该计划任务

验证调度配置:等待定时时间任务执行后配置的日志路径内查看执行日志

附:

Kettle作业运行日志级别:(配置在批处理文件的level 后的参数)

Nothing‌:没有日志,不显示任何输出。

Error‌:错误日志,仅显示错误信息。

Minimal‌:最小日志,使用最小的日志输出。

Basic‌:基本日志,缺省的日志级别。

Detailed‌:详细日志,给出日志输出的细节。

Debug‌:调试日志,用于调试目的,输出调试信息。

Rowlevel‌:行级日志,打印出每一行记录的信息。

 若遇到调度时间周期不对的问题,需要检查并取消主作业入口START的定时,如下:

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐