背景:业务每周六需要固定格式的数据,手工跑脚本太麻烦,为了偷懒,设计了job,定时启动job,并把数据自动发送到对方邮箱。
一 kettle服务器定时任务如下:每周六上午九点执行脚本调度job
0 9 * * 6 source /etc/profile;/opt/program_etl/weekly_jss_jingsuanshi_taibaorenewal_trace.py
weekly_jss_jingsuanshi_taibaorenewal_trace.py调度脚本如下:
#!/usr/bin/python
#create by liuguorui at 2018-04-19 10:00:00
import os
import datetime
def start(date):
shell='/opt/dtb_etl/kitchen.sh -rep=### -user=### -pass=### -job=weekly_jss_jingsuanshi_taibaorenewal_trace -dir=mk -level=Error >> /opt/log_etl/weekly_jss_jingsuanshi_taibaorenewal_trace/%s.log 2>&1 '%(date)
#print shell
os.system(shell)
if __name__ == '__main__':
date=str(datetime.datetime.now()-datetime.timedelta(days=1)).split(' ')[0]
start(date)
二 job如下:
作业步骤详细分析:
1. start :作业开始,不做过多解释
2. 转换:这步我主要是把数据通过SQL查出来,表输出到数据库中的另外一张表。

3. 转换:从新生成的表中SQL查询想要的数据,excel输出到本地。

4. 添加文件到结果文件中:如果邮件中想把输出结果作为附件发送,这步是必不可少的。

5. 配置正确邮件发送



6. 配置错误邮件发送
和正确邮件发送配置相同,设置跳的状态为‘×’,即步骤执行错误时发送邮件。
7. 成功:job执行完毕