【实验目的】
1.利用Kettle的“表输入”,“表输入出”,”JavaScript代码”组件,实现数据全量更新。
2.熟练掌握“JavaScript代码”,“表输入”,“表输入出”组件的使用,实现数据全量更新。
【实验原理】
通过“表输入”对MySQL表格的数据读入,然后通过“JavaScript代码”更新抽取数据的时间,再通过“表输入出”保存表格到MySQL数据库。
【实验环境】
操作系统:Windows10
Kettle版本:7.1.0.0
jdk版本:1.8.0及以上版本
【实验步骤】
一、建立转换
双击spoon.bat打开kettle。(1)点击新建按钮,在下拉菜单中点击选择"转换"即可创建;(2)然后点击"保存"重命名该转换文件,保存在某个指定的路径;(3)选择输入步骤、输出步骤和跳。
二、数据导入数据库的准备工作
1.数据库mysql
导入数据表:‘课程信息表’,
建立转换,需要组件如图所示:
2.“Excel的输入”的配置
Step1:双击‘Excel输入’组件,配置‘文件’选项卡,设置输入数据的输入流和路径
Step2:配置‘工作表’选项卡,设置输入数据的起始行和起始列
Step3:配置‘字段’选项卡,获取字段名称,并设置字段的数据类型(重点,以防报错)
3.“表输出”的配置
Step1:连接数据库
创建数据库代码
create database testbase;
use testbase;
CREATE TABLE courses1 (编号 DOUBLE,课程名称 VARCHAR(255), 课程大类 VARCHAR(255), 学分 DOUBLE,讲师 VARCHAR(255), 开课时间 DATETIME,课时数 INT, ETL_TIMESTAMP DATETIME
);
Step2:选择数据库和表名
Step3:确定
Step4:获取字段
4.运行结果
三、各组件的配置
1.“表输入”的配置:
Step1:双击‘表输入’组件,新建数据库的连接并进行测试,
Step2:连接成功后,获取表的字段名称
2.“JavaScript代码”的配置:
双击“HTTP client”组件,编写Script1的代码,并获取其相应字段名称和类型。
3.“表输出”的配置:
双击‘表输出’组件,选择目标表的名称,并使用SQL语句进行创建:
还要进行目标表courses2的创建
create database testbase;
use testbase;
CREATE TABLE courses2 (编号 DOUBLE,课程名称 VARCHAR(255), 课程大类 VARCHAR(255), 学分 DOUBLE,讲师 VARCHAR(255), 开课时间 DATETIME,课时数 INT, ETL_TIMESTAMP DATETIME
);
4.“表输出2”的配置:
双击‘表输出2’组件,选择目标表的名称,并使用SQL语句进行创建:
进行目标表courses3的创建
create database testbase;
use testbase;
CREATE TABLE courses3 (编号 DOUBLE,课程名称 VARCHAR(255), 课程大类 VARCHAR(255), 学分 DOUBLE,讲师 VARCHAR(255), 开课时间 DATETIME,课时数 INT, ETL_TIMESTAMP DATETIME
);
四、执行转换
点击按钮,执行转换,结果如下:
五、实验结果:
输入文件‘课程信息表.xlsx’:
table output
table output2