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