kettle的简单示例:实现数据定时推送和监测,并发送异常报告邮件

  • Post author:
  • Post category:其他


应用场景

生产环境的系统因程序BUG,产生了异常数据若没有及时处理,随着时间的日积月累最后可能会出现难以挽回的经济损失。

鉴于此,我们需要有一套自动核查机制。定时检查数据库的核心表数据。当出现不符合要求的异常数据时,能尽早提醒管理员及时处理。

解决方案

以下使用大数据ETL工具Kettle,进行数据定时推送、检查,并将检查结果邮件通知管理员。


一、认识Kettle

Kettle是一款国外著名的开源ETL工具,绿色无需安装,数据抽取高效稳定。它允许你管理来自不同数据库的数据,然后以一种指定的格式流出。Kettle现在已经更名为PDI, Pentaho Data Integration Pentaho数据集成。

Kettle主要有以下两种设计

Transformation (转换) :完成针对数据的基础转换

Job (作业) :完成整个工作流的控制。

二、数据推送


1.创建转换

新建一个转换,将以下三个控件拖入工作区。

控件1,“脚本”-》“执行SQL脚本”控件,命名“清空用户表数据”,意为将要推送的目标表原数据先清空。

控件2,“输出”-》“表输出”,命名“推送用户信息”,意为从用户表查询数据。

控件3,“输出”-》“插入\更新”,命名“插入用户信息”,意为将查询的数据插入到目标表中。

按住shift键将三个控件按图示顺序方向串联起来。


2.清空用户表

双击“清空用户表”的SQL脚本控件,在SQL区域录入delete 语句,即插入数据前先清空目标表的数据。“数据库连接”选择或新建(即数据目标库)


3.推送用户表

双击“推送用户表”的表输出控件,在SQL区域输入查询的SQL语句,即从原表中抽取哪些字段数据。数据库连接选择或新建(数据来源库)


4.插入用户信息

双击“插入用户信息”的插入更新控件,数据库连接选择数据目标库。查询字段和更新字段均选择需要插入到新表的3个字段。


5.执行

保存并执行后,可以看到目标库的t_user_arch表中新增了从原库中抽取过来的数据。

以上为kettle的数据抽取简单示例,可以试下查询A库数据推送到B库表中的过程。

上述过程也可以根据需求将对应的查询语句修改为检查表中是否存在异常数据的SQL语句。

三、作业

创建了转换后,就需要创建作业,作业的目的是可以配置定时计划,组合多个已建好的“转换”,形成工作流,并自动执行。


1.创建作业

新建一个作业,将以下四个控件拖入工作区。

控件1,“通用”-》“START”控件,意为作业开始步骤。

控件2,“通用”-》“转换”,命名“推送用户信息”,意为从用户表查询数据。

控件3,“通用”-》“成功”,用于输出提示。

控件4,“邮件”-》“发送邮件”,用于配置邮件参数,并发送到指定邮箱。

按住shift键将四个控件按图示顺序方向串联起来。


2. 配置作业

双击START控件,可以配置定时计划,勾选“重复”,设置作业执行的间隔时间。


3.选择转换

双击“转换”控件,在“Transformation”转换浏览框中选择刚才我们已经创建的转换名为“推送用户信息”项。

4.邮件配置

双击“发送邮件”控件

“地址”页面:在“收件人地址”输入管理员接收邮件的邮箱地址A,在“发件人地址”输入另一个用于发出邮件的邮箱B。

“服务器”页面:

在“SMTP服务器”输入qq邮箱的默认smtp服务器地址和端口号465。勾选用户验证和安全验证SSL,输入邮箱B的账号以及密码(此密码非邮箱登录密码,而是需要登录你的邮箱并启用SMTP服务时会得到的授权码)。

“邮件消息”:

在消息页面输入邮件主题和内容。保存。

以上邮件配置完毕。

四、执行

执行上述作业后,邮箱B会在定时计划的间隔时间内,收到一份邮件提醒。



版权声明:本文为quan278905570原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。