点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!
kettle介绍
ETL 是Extract-Transform-Load三个单词的简称,即抽取、转换、加载。使用ETL工具可以完成从目标数据源进行数据抽取,经过一系列的数据转换,最终形成需要的数据模型并加载到数据库中。
Kettle是开源ETL工具,提供一系列的组件用于完成各种抽取、转换、加载的工作。
Kettle中两个核心是转换(transformation)与作业(job):
转换即完成数据ETL工作;
作业即定义一个完成整个工作流的控制。
注:Kettle如何发送邮件可查看之前发布的《ETL工具Kettle发送邮件》文章。
项目背景
业务人员日常需要通过手工统计加工的方式进行数据统计和分析,通过Kettle进行自动化的定期对数据数据抽取、加工和汇总,需要用到关键的技术是通过传参将处理数据每次更新到每一期的邮件,实现采集、加工和统计汇总的自动化。
自动生成报表
1. kettle发送邮件正文处添加表格
Kettle发送邮件正文处添加表格,是指将数据库里面的数据通过kettle组件进行抽取出来,按照所需要的格式以及排版转换成表格形式,在发送邮件时展示到邮件正文处,方便收件人更加直观的看到所需数据。

图1: Kettle发送邮件正文处添加表格流程图
2. kettle发送邮件正文处添加表格步骤详解
1)Start:开始执行作业
2)设置昨日日期变量-转换:获取时间日期,按照需要的格式进行加工并设置为变量,供其他组件使用。

图2: 昨日日期变量
获取系统信息:可以获取当前系统时间、昨日时间、明天时间、本月/上月/下个月月初/末等时间。
字段选择:可以对获取到的系统时间按照业务需求设置格式,例如:yyyyMMdd、MM-dd-yyyy HH:mm:ss。
设置变量:将获取到的系统时间设置为变量,供后面的组件使用,例如:获取昨天时间,设置的变量名为:ZTDATE,使用该变量时的格式为:${ ZTDATE }。
3)数据转换:从目标数据源进行数据抽取,经过一系列的数据转换,最终形成需要的数据模型。例如:将数据库中的数据转换成文件形式、将文件形式的数据转换加载到数据库、将数据库中的数据转换设置为变量来使用等。本文是将数据库中的数据以HTML格式输出,并设置成变量展示到邮件正文处。

图3:数据转换
表输入:用来查询数据库数据的组件。选择数据表来源数据库,可以获取SQL查询语句或根据业务需求自定义SQL语句。
本文中是用拼接的形式将HTML中所用的标签进行拼接,最终用聚合函数string_agg(expression,delimiter)将多行数据合并成一行。
其中,expression是指需要合并的字段名,delimiter是指合并时用什么分隔符进行分割,例如可为空格、逗号、分号等自定义字符。

图4:表输入
设置变量:将输出的结果设置成变量,供后面的组件使用。
例如本文是将输出HTML形式的数据设置为变量,且变量名命名为content,当使用该变量时的写法为${content}。

图5: 设置变量
4)发送邮件:步骤有“地址”、“服务器”、“邮件消息”、“附件”四个标签页。标签页配置信息如图6至图9所示。
地址

图6:地址
服务器

图7:服务器
邮件信息:可以自定义发送邮件的主题和邮件正文。

图8:邮件信息
附件

图9:邮件信息
5)成功:查看执行结果日志,每一步均为result=[true],则作业执行成功,任务结束,否则执行失败。

6)邮件显示情况如下:

注:Kettle如何发送邮件可查看之前发布的《ETL工具Kettle发送邮件》文章。

本文作者:杨华倩
本文来源:IT那活儿(上海新炬王翦团队)





