需求:
每次统计到的业务数据或运营数据,整理输出到excel文档中,定时把excel文件通过邮件发送到指定的邮箱中。
环境:window系统+kettle
kettle搭建环境忽略。
文件路径配置:
bat:存放定时任务的bat文件
excel:存放查询结果输入到的excel文件
KJB:存放kettle的作业文件
KTR:存放kettle的转换文件
log:存放日志文件(2种日志文件都存放在此,可以再次拆分成2个文件)
配置转换:
1、新建转换,配置DB连接访问数据库。
在核心对象的输入组里,拖出表输入,在输出组里拖出excel输出。
2、建立连接后,开始编辑表输入和excel输出。将需要查询的结果输出到excel文件中。
编辑表输入:注意,时间字段不能用时间类型,得转换成字符串,否则输出到excle的会是空。
编辑excel输出:文件&工作表部分,文件名可包含日期,如果是每天一次的,可只包含日期。
编辑excel输出:内容部分,获取字段看一下表输入过来的字段类型是不是想要的类型。
运行转换进行测试,文件路径存放到之前预定好的配置路径上。
配置作业:
1、选择文件新建作业
在通用、邮件和文件管理模块中,选择需要使用的模块,如下图。
本例大体思路。作业定时调度模块---->配置好的转换(确认转换是否有问题,可分支一个发送邮件,当转换异常时邮件告知)---->转换输出的结果---->把结果发送邮件给接收人---->结束成功标识
2、配置各个模块内容:
start的作业定时调度模块:
这个一般不调整,默认即可。后面使用window系统的定时任务计划执行kettle的定时任务,更稳定。
转换模块:
这里作业名称按需求取。转换文件,就是在配置转换后存放的文件。
可以设置日志:日志级别错误日志,还有日志文件的名称,要对应日志路径。其他的不用设置
配置添加到文件结果文件列表模块:
这里需要注意一下,勾选将上一个作业项的结果作为参数。不然,前面的转换生产的excel报表不会随邮件发送给接收人。
最后,复杂点的就是配置发送邮件模块:
这里使用的是网易邮箱,网易邮箱的STMP服务器:smtp.163.com
使用自己的网友163.com邮箱作为邮件发送端。
邮件服务器配置如下:
注意,验证的密码是你网易邮箱的授权码。建议信息写详细一些,如下图圈起来的回复名称,避免被网易邮箱判断为垃圾邮件。
在发送时,如果有此类报错,则需要注意:
运行作业,进行转换,并发送邮件测试:
也能收到邮件告警,邮件中有正常携带附件:
到此,基本上一个转换的作业就已经配置完成,验证也能正常运行和发送邮件。
下面,就该进行window上定时任务计划设置。
配置window定时任务计划:
1、配置可执行的任务文件bat。
新建一个记事本文件,取名chaxunshuchu.txt(随便取),里面的内容如下:
E:
cd E:\fq\kettle\pdi-ce-8.1.0.0-365\data-integration
kitchen.bat -file=E:\fq\kettle\KJB\查询输出excel表.kjb -level=basic>E:\fq\kettle\log\"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%".log
对上面可执行文件脚本解释如下:
首先进入项目所在盘
cd 进入到kitchen.bat所在目录,在kettle的安装目录下
kitchen.bat问执行命令,-file后是kettle上存放的作业文件。
-level是生成的日志的等级,一般有basic、Detailed, Debug, Rowlevel, Error, Nothing。一般使用basic。
紧接着就是日志输入的文件路径:
"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%" 是时间作为日志名称的,固定格式
.log是日志的后缀。
将写好的记事本文件保存为ANSI格式,这个是window系统识别的格式,文件类型保存为.bat格式。
2、配置window定时执行计划
打开计算机管理,创建任务计划:
新建操作,这里的脚本即为上面编写的bat文件:
新建触发器,设定任务重复情况,本例设置为每10分钟一次,无限执行。
最后,要在常规界面进行最后的设置,注意,这里使用登录window系统的用户来执行任务,需要输入密码进行确认。以后修改定时任务时,也需要该用户的密码进行验证。
设置完后,即可以看到定时任务情况:
验证:计算机管理里可以看到定时任务执行情况,如下,分别在14点44分和14点54分执行一次,如下:
查看收到邮件情况如下:
到此为止,整个配置流程已经结束。
只要这个流程熟悉后,报表的还会远么,随便改转换,只要查到想要的数据生成到文件里,再通过定时任务发送给指定的邮箱,即可完成每日的报表任务了。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。