kettle - Kettle作业设计
Kettle作业设计
实验目标
统计数据库course表中课程名称为空,课时数为零的记录数。
输入数据
| 1 | 大数据导论 | 基础课 | 4 | 张三 | 2020/3/1 0:00 | 64 |
|---|---|---|---|---|---|---|
| 2 | Hadoop大数据技术 | 专业课 | 4 | 李四 | 2020/3/2 0:00 | 64 |
| 3 | 分布式数据库原理与应用 | 专业课 | 4 | 张三 | 2020/3/3 0:00 | 64 |
| 4 | 数据导入与预处理应用 | 专业课 | 4 | 李四 | 2020/3/4 0:00 | 0 |
| 5 | 数据挖掘技术与应用 | 专业课 | 4 | 王五 | 2020/3/5 0:00 | 64 |
| 6 | 专业课 | 4 | 赵六 | 2020/3/6 0:00 | 64 | |
| 7 | 大数据应用开发语言 | 专业课 | 4 | 张三 | 2020/3/7 0:00 | 64 |
| 8 | 大数据分析与内存计算 | 专业课 | 4 | 张三 | 2020/3/8 0:00 | 64 |
| 9 | 专业课 | 4 | 王五 | 2020/3/9 0:00 | 64 | |
| 10 | 专业课 | 4 | 赵六 | 2020/3/10 0:00 | 64 | |
| 15 | 数据库原理与应用 | 专业课 | 4 | 赵六 | 2020/3/11 0:00 | 0 |
具体SQL语句见附录。
期望结果
中间文件输出
| 编号 | 课程名称 | 课程大类 | 学分 | 讲师 | 开课时间 | 课时数 | 课程名称为空 |
课时数为零 |
|---|---|---|---|---|---|---|---|---|
| 1 | 大数据导论 | 基础课 | 4 | 张三 | 2020/3/1 | 64 | 0 | 0 |
| 2 | Hadoop大数据技术 | 专业课 | 4 | 李四 | 2020/3/2 | 64 | 0 | 0 |
| 3 | 分布式数据库原理与应用 | 专业课 | 4 | 张三 | 2020/3/3 | 64 | 0 | 0 |
| 4 | 数据导入与预处理应用 | 专业课 | 4 | 李四 | 2020/3/4 | 0 | 0 | 1 |
| 5 | 数据挖掘技术与应用 | 专业课 | 4 | 王五 | 2020/3/5 | 64 | 0 | 0 |
| 6 | 专业课 | 4 | 赵六 | 2020/3/6 | 64 | 1 | 0 | |
| 7 | 大数据应用开发语言 | 专业课 | 4 | 张三 | 2020/3/7 | 64 | 0 | 0 |
| 8 | 大数据分析与内存计算 | 专业课 | 4 | 张三 | 2020/3/8 | 64 | 0 | 0 |
| 9 | 专业课 | 4 | 王五 | 2020/3/9 | 64 | 1 | 0 | |
| 10 | 专业课 | 4 | 赵六 | ####### | 64 | 1 | 0 | |
| 15 | 数据库原理与应用 | 专业课 | 4 | 赵六 | ####### | 0 | 0 | 1 |
统计结果输出
此步骤是对课程名称为空和课时数为零两列的求和。
| 课程名称为空 | 课时数为零 |
|---|---|
| 3 | 2 |
邮件通知
作业执行成功,发送成功邮件; 执行失败,发送失败邮件。
整体设计

此作业主要分为两个模块:
- 数据处理
- 设置变量
数据处理转换设计

设置变量作业设计

数据处理转换设计
读取数据
表输入

数据库连接

日期格式调整
字段选择步骤
选择和修改标签页

元数据标签页

使用JS新增两列
JavaScript代码步骤
新增课程名称为空和课时数为零两列。

统计
通过在映射子转换中统计课程名称为空和课程数为零的记录数。
映射子转换
新建转换,此处命名为:SUM求和转换
具体设计:

映射输入规范
JavaScript步骤新增的两列作为映射子转换的输入。

分组
不需要对两列数据分组,只需要对两列数据求和。

映射输出规范
无需调整。
SUM求和转换引用
在数据处理转换中引用上面配置的SUM求和转换,具体做法:在下面红色方框上右键选择引用的SUM求和转换.ktr文件。


统计结果输出
将映射子转换的求和结果输出到文本文件中,具体配置略。
设置变量作业设计
整体设计

设置变量作业项
设置变量作业项中,有两种方式设置变量:
- 在属性文件中设置变量
- 直接设置变量
我们选择第二种方式,直接设置变量 db_table=course

设置变量转换
创建转换,用来获取系统IP,并将该IP设置为变量,供数据处理转换中使用。此处我们将该转换命名为设置变量。

获取系统信息

此处,我们将获取到的IP地址,命名为ip
设置变量

在设置变量步骤中,我们将上一步骤中获取的ip设置为变量,命名为db_host。
命名参数
在命名参数中定义数据库用户名和密码。在画布空白处单击鼠标右键 - 作业设置 - 命名参数 - 标签页

属性文件
在kettle.properties中定义变量
文件位置C:\Users\Qingyuan_Qu\.kettle
1 | db_name=data_etl |
定义变量后,记得重启Kettle,才能使变量生效。
引用
记得在并行设置变量作业中,通过转换作业项对刚才创建的设置变量转换进行引用。

然后再start作业项上右键

记得在设置变量作业项中对并行设置变量作业进行引用。
变量引用
同时安装键盘 Ctrl + Alt + 空格选择预定义的变量。



邮件通知作业项

注意:下面的密码不是邮箱登录密码,而是邮箱SMTP授权码,需要在邮箱服务商网站获取。

发送失败邮件作业项与此相似,不再赘述。
命令行启动
1 | # 首先进入kettle软件目录 |
附录
1 | DROP TABLE IF EXISTS `course`; |