【实验目的】
利用Kettle的“阻塞数据直到步骤都完成”,“检测空流”,“中止”等组件,实现Kettle转换流程的控制。
【实验原理】
“检测空流”组件可以检测所在转换的输入数据,如果整个转换没有输入数据,通过“中止”组件终止整个转换的流程。
在存在数据输入的情况,为了能让数据输出,需要和“阻塞数据直到步骤都完成”配合使用。当所有数据都已经从上个步骤“字段选择”读取完毕后,通过“阻塞数据直到步骤都完成”使能打开数据通道,进入到“Microsoft Excel 输出”输出数据到表格。
【实验步骤】
一、创建转换
1.点击,在下拉菜单中点击选择,这样创建了一个转换文件。我们点击,重命名该转换文件,保存在某个指定的路径。
2.我们在新建的转换文件上开始可视化编程。需要的组件如下图所示。选择好组件好,按下图所示连接好组件。主要组件为:excel input,select values,detect empty stream,Block until steps finish,Abort,Excel Writer。
二、可视化编程
1. “Excel输入”的配置:
2.“字段选择”的配置:
3.“检测空流”的配置
4.“中止”配置:
5.“阻塞数据直到步骤都完成”配置:
6.“Microsoft Excel 输出”配置:
三.运行程序:
点击开始运行程序,在弹出的对话框中,选择运行该程序。
运行结果:
四.实验结果
输入数据
(1) 课程信息表.
输出数据:
“Microsoft Excel 输出”输出数据:
异常输入数据:
当配置“Excel输入”步骤读入一个不存在的数据EXCEL表格时,将会触发“检测空流”组件检测到空数据,通过“中止”组件终止整个流程。
“Excel输入”步骤配置如下:
异常输出数据:
整个转换终止,“Microsoft Excel 输出”步骤无数据输出。程序运行记录如下,提示中止信息。