1 作业
1.1 新建一个作业
通过使用Kettle工具,创建一个作业,并添加Start控件、发送邮件控件、成功控件以及作业跳连接线,具体如图1所示。
图1 创建作业
1.2 配置start控件
双击“Start”控件,进入“作业定时调度”界面,单击“类型”处的下拉框,选择“时间间隔”定时,并设置以秒计算的间隔是10,以分钟计算的间隔是0(即作业运行10秒后发送邮件),如图2所示。
图2 start配置
1.3 发送邮件设置
双击“发送邮件”控件,进入“发送邮件”界面双击“发送邮件”控件,进入“发送邮件”界面,在“地址”选项卡中,添加收件人和发件人的相关信息,如图3所示。
图3 发送邮件设置
1.4 邮件服务器设置
发件人用的是qq邮箱,设置为SMTP服务器:smtp.qq.com。端口设置为465。然后填入发件人用户密码以及邮件密码。
图4 服务器配置
服务器配置成功,运行后,出现报错:Problem while sending message: javax.mail.MessagingException: Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1。
图5 发送失败
1.4.1 456端口登录失败问题
465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露所以要开启SSL。所以解决办法有两种换端口或者开启SSL验证开启SSL验证如下图
图6 服务器设置
图7 发送成功
2 转换
2.1 创建转换
通过使用Kettle工具,创建一个转换,并添加表输入控件、JavaScript代码控件、插入/更新控件以及跳连接线,具体如图所示。
2.2 配置表输入控件
双击“表输入”控件,进入“表输入”界面,如图所示。
配置mysql连接,如图所示。
单击【获取SQL查询语句】按钮,获取数据表personal_a中的数据
“表输入”界面配置的最终效果
2.3 配置JavaScript代码控件
双击“JavaScript代码”控件,进入“JavaScript代码”界面
在Java script窗口中,编写Java script脚本代码;单击【获取变量】按钮,在字段窗口的“改名为”字段处添加新的字段名称username。
2.4 配置插入/更新控件
双击“插入/更新”控件,进入“插入/更新”界面,并配置数据库连接。接着单击【浏览】按钮,获取目标表personal_b。随后单击【获取字段】按钮,指定查询数据所需要的关键字,即数据表personal_b中的id_b字段和输入流中的id字段。最后单击【编辑映射】按钮,配置映射匹配窗口,然后单击【确定】按钮,并插入/更新”控件的配置效果。