本文首先介绍Kettle工具的安装及基本概念,然后通过一个案例实操介绍Kettle工具的使用。
本文重要的内容如下:
右键点击“我的电脑”,在弹出的选项栏中点击“属性”
点击“环境变量(N)…”。
点击“系统变量(S)”栏目下的“新建(W)…”。
以新建的方式配置JAVA_HOME环境变量。在“变量名(N):”填入JAVA_HOME, 在“变量值(V):”填入C:\Program Files\Java\jdk-10。填写完毕后,点击“确定” 完成新建环境变量JAVA_HOME的配置。
参考JAVA_HOME环境变量的配置操作完成CLASSPATH环境变量的配置。CLASSPATH环境变量的值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,填写完毕后,点击“确定”,完成新建环境变量CLASSPATH的配置。
在“系统变量(S)”栏目中,点击Path环境变量,接着点击“编辑(I)…”按钮,以追加的方式开始配置Path环境变量。
在“编辑环境变量”弹框中,点击“新建(N)”按钮
在光标位置,增添.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,点击“确定”完成Path的配置。配置完毕后,点击所有弹框的“确定”按钮,关闭所有弹框,返回到桌面。
在命令窗口中输入java –version和javac命令,有如下输出提示,则Java 的环境变量配置正确。
修改spoon.bat的图标
步骤是转换里的基本组成部分。它是一个图形化的组件,可以通过配置步骤的参数,使得它完成相应的功能。例子显示了两个步骤,分别为“表输入”和“Microsoft Excel 输出”。配置“表输入”步骤的参数,可以使得这个步骤从指定的数据库中读取指定关系表的数据;配置“Microsoft Excel 输出” 步骤的参数,可以使得这个步骤向指定的路径创建一个Excel表格,并写入数据。当这两个步骤用跳(箭头连接线)连接起来的时候,“表输入”步骤读取的数据,通过跳,传输给了“Microsoft Excel 输出”步骤。最终,“Microsoft Excel 输出”步骤把“表输入”所读取的数据,写入到Excel表格中。这个跳,对“表输入”而言,是个输出跳;对“Microsoft Excel 输出”而言,是个输入跳。
1、运行Spoon.bat后,Kettle将启动Spoon,进入可视化编程界面。
2、如下所示,创建一个转换文件。(注:“作业”包括一个或多个作业项,作业项由转换构成。)
3、点击下图圈出的“图片”图标,重命名该转换文件,保存在某个指定的路径
4、在“核心对象”标签中,点击“输入”文件夹展开输入类型的所有步骤。按住鼠标左键拖拽“表输入”步骤到画布中。这样,在画布中就创建了一个新步骤。
5、在“核心对象”标签中,点击“输出”文件夹展开输出类型的所有步骤。点击“Microsoft Excel 输出”步骤,按住鼠标左键拖拽到画布中。
6、转换里的步骤通过跳定义一个单向通道来连接。点击“表输入”步骤,按住鼠标左键,将箭头一直拖到“Microsoft Excel 输出”,待箭头变成绿色时,松开鼠标左键,即可建立两个步骤之间的跳。 注:右键点击跳的箭头符号,在菜单栏上选择相关的操作设置该跳的一些属性,包括“使节点连接时效”,“删除节点连接”等。
7、双击“表输入”步骤进行配置,在弹出的配置对话框中,点击“新建”按钮配置数据库的连接信息
8、配置数据库连接
9、配置数据库连接后,“表输入”弹框中会显示新建的数据库连接
10、在“表输入”弹框中,点击“获取SQL语句”按钮,将弹出“数据库浏览器”
11、选择“学生”表后,“表输入”弹框会显示“学生”表的查询语句
12、选择预览的记录数量,点击“确定”后,将可以查看学生表的数据记录信息。此时,已完成了“表输入”步骤的配置。
13、 双击“Microsoft Excel 输出”步骤进行配置。在弹出的配置对话框中,点击选定“文件&工作表”进行配置。
14、在“Microsoft Excel 输出”步骤的配置对话框中,点击选定“内容”进行配置。 点击“获取字段”按钮,获取上个步骤输出的数据字段。 获取后,在“字段”的表格中,显示了已获取的字段。这些字段将在C:\Users\45812\Desktop\etl\ktr\outfile.xlsx文件中输出。
15、点击“右三角”开始运行程序,在弹出的对话框中,选择“启动”按钮运行程序
16、执行完毕后,输出的文件保存在“Microsoft Excel 输出”步骤设置的路径下。该转换的输出路径及文件为C:\Users\45\Desktop\etl\ktr\outfile.xlsx
对于Kettle而言,执行的一系列结果在右下方的“执行结果”状态栏中显示。也就是说,“执行结果”状态栏是对转换、作业执行过程的监控。