暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ETL工具Kettle自动生成报表邮件

IT那活儿 2022-04-13
3314

点击上方“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:地址

a. 收件人:可输入收件人地址、抄送人地址、暗送人地址。
b. 发件人:可输入发件人地址、回复地址、联系人、联系电话等相应的信息。
  • 服务器

图7:服务器

a. 邮件服务器:配置SMTP服务器、端口号信息。
b. 验证:输入发送人用户名和密码,每次发送邮件时,验证发送人的邮箱和密码。
  • 邮件信息:可以自定义发送邮件的主题和邮件正文。

图8:邮件信息

a. 使用HTML邮件格式:表示注释内容支持HTML标签。
b. 注释:邮件正文展示内容。其中<font size="4"></font>表示设置字体大小为4px,<br/>表示换行标签,&nbsp;表示空格标签,<p></p>表示段落标签,${ZTDATE}表示引用的昨日日期变量,${content}表示引用输出HTML形式的数据。
  • 附件

图9:邮件信息

a. 带附件:勾选此项,即可将“添加文件到结果文件中”的文件以附件形式发送。
b. 文件类型:可选择一般、日志、错误行、错误、警告。

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

6)邮件显示情况如下:

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


本文作者:杨华倩

本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论