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系统