ETL——Kettle在2个不同操作系统中自动化实现作业调度

作业调度与自动化

作业调度:将不同程序组成在一起成为一个作业集(job),并为每个作业分配必要的资源,调度它们的执行,以便在一定时间内完成该作业集。

自动化与作业调度算法相结合,顾名思义,可以准确、快速、智能实现该作业调度。接下来我将讨论如何在Linux和Windows环境下用Kettle实现这种方式:

Windows创建定时任务+bat

以Kettle9.0版本为例,进入其根目录发现,有两个可以实现KJB的脚本:

这两个脚本就是分别在Windows和Linux下执行的批处理文件。在Windows中,我们还要手动创建一个批处理脚本,且该脚本要调度Kettle目录中的Kitchen.bat来执行我们想要的KJB,该批处理脚本如下:

rem 进入 Kitchen.bat所在目录,如果是在Linux下执行,则进入Kitchen.sh
D:
rem 作业(job)文件路径和日志文件路径
cd D:\pdi_ce_9.0.0.0_423
rem 调动kitchen.bat,执行job,并写入日志,若是在Linux环境下,则将下面的kitchen.bat更改为kitchen.sh
kitchen.bat /file:C:\Users\laptop\Desktop\Test.kjb /level:Basic>>D:\pdi_ce_9.0.0.0_423\log\kettle_%date:~0,4%%date:~5,2%%date:~8,2%.log
rem 设置完作业的路径后,level设置日志等级,并重定向该日志路径,Windows下手动创新,Linux下不用

注意:在Windows中要手动创建该脚本运行的log目录,并使该KJB重定向到该log目录。

以上就是在Windows中自动化实现作业调度的第一步——创建KJB,并用Kitchen.bat批处理该KJB,接着我们需要处理第二步——自动化:

按WIN键打开Windows管理工具,在目录中找到并打开任务计划程序,接着在右边点击创建基本任务:

按照步骤以此填充该任务的名字,以及该程序执行的时间、次数、位置,最后点击完成:

Linux crontab+shell

首先我们要明白一个用来定期执行程序的Linux shell——crontab,该命令的语法简要叙述如下:牢记分 时 日 月  周——>* * * * * 需要执行的脚本路径。例如,设置每2分钟重启防火墙命令:

*/2 * * * * systemctl restart firewalld

如果我们想查看该命令的执行情况,可以使用以下命令:

crontab -l:列出当前所有作业

crontab -e:编辑当前用户的计划任务

crontab -r:删除当前作业

cat /var/log/cron:查看Linux中默认crontab设置作业调度的执行日志目录

其他有关crontab的语法可以用命令crontab -man查看帮助手册

综上所述,我们只需要将上面在Windows中编辑的Kitchen.bat做相关修改,使其在Linux中运行,并用crontab进行自动化调度即可。

在Linux中编辑该Kitchen.sh脚本如下:

#!bin/bash
# 进入 Kitchen.sh所在目录
D:
# 作业(job)文件路径和日志文件路径
cd D:\pdi_ce_9.0.0.0_423
# 执行kitchen执行job,并写入日志
kitchen.sh /file:C:/opt/test.kjb /level:Basic>>/opt/logs\kettle_%date:~0,4%%date:~5,2%%date:~8,2%.log

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值