【实验目的】
1.利用Kettle的“START”,“Transformation”,“Success”组件,实现作业的创建与数据仓库生成业务代理键的方法。
2.熟练掌握“生成记录”,“增加序列”,“计算器”,“设置变量”等组件的使用,利用Kettle作业实现使用转换计数器生成序列,生成业务代理键的方法。
【实验原理】
通过“START”设定作业执行的顺序与调度策略,然后通过“Transformation”调度执行相关的转换,再通过“Success”设定作业执行完毕。在此实验中,需要创建两个转换分别给两个“Transformation”调用。其中,第一个转换把获取表中最大序列值,第二个转换把最大序列值传入生成行记录并写入目标表。
【实验环境】
操作系统:Windows10 Kettle版本:7.1.0.0 jdk版本:1.8.0及以上版本
【实验步骤】
一、Mysql中创建数据表并插入数据
Step1:创建数据表test_sequence,代码如下:CREATE TABLE test_sequence
(id
int(11) NOT NULL,name
tinytext) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Step2:插入数据后,查询数据表如下图所示:select * from test_sequence;
二、建立转换
双击spoon.bat打开kettle。(1)点击新建按钮:,在下拉菜单中点击选择:即可创建;(2)然后点击:重命名该转换文件,保存在某个指定的路径;(3)选择输入步骤、输出步骤和跳。
在本实验中,我们需要创建2个转换。一个转换用来获取表中最大序列值;另外一个用来生成行记录并写入目标表。第一个转换如下所示:
三、第一个转换各组件的配置
1.“目标表中取最大ID”的配置
Step1:双击‘目标中取最大ID’组件,建立数据库的连接
Step2:利用SQL语句查询最大的id
2.“计算器最大ID”的配置:
双击“计算器最大ID”组件,设置字段名称以及计算的各种方法
3.“设置变量”的配置:
双击‘设置变量’组件,设定变量maxid
四、第二个转换的建立和各组件的配置
第二个转换的建立如下图所示:
1.“生成记录”的配置
2.“增加序列”的配置:
双击‘增加序列’组件,设定值的名称以及起始值
3.“表输出”的配置:
双击‘表输出’组件,设置输出字段
五、作业的建立和各组件的配置
作业的建立如下图所示:
1.“START”配置
不做设置,默认情况
2.“转换test_sequence2-1”配置:选定转换的路径
3.“转换test_sequence2-2”配置:选定转换的路径
六、执行作业
点击按钮,执行转换,结果如下:
七、实验结果:
输入文件‘test_squence’:
输出文件‘test_squence’:
八、实验总结
本次实验的目的主要是通过实现作业的创建,以及数据仓库生成业务代理键的方法,使得两个转换分别获取表中最大序列值和把最大序列值传入生成行记录并写入目标表。实验过程中,进一步理解作业的创建与数据仓库生成业务代理键的方法,同时提高了熟练操作kettle的能力。