【实验目的】
1、利用Kettle的“维度查询/更新”,“表输入”步骤,实现的转换创建与数据仓库缓慢变化维更新的方法。
2、熟练掌握“维度查询/更新”,“表输入”等组件的使用,利用Kettle转换实现数据仓库缓慢变化维更新(类型2)的方法。即业务主体数据发生变化时,用当前最新数据生成新的数据行,保存多个历史版本。

【实验原理】
通过创建Kettle转换 ,利用“维度查询/更新”,“表输入”等组件,实现数据仓库缓慢变化维更新(类型2),即业务主体数据发生变化时,用当前最新数据生成新的数据行,保存多个历史版本。

【实验环境】
操作系统:Windows10 
Kettle版本:7.1.0.0
jdk版本:1.8.0及以上版本

【实验步骤】

一、建立转换

双击spoon.bat打开kettle。(1)点击新建按钮,在下拉菜单中点击选择“转换”即可创建;(2)然后点击“保存”重命名该转换文件,保存在某个指定的路径;(3)选择输入步骤、输出步骤和跳。

怎么升级kettle中的JavaScript kettle 更新数据太慢_大数据

二、各组件的配置

1.Mysql中创建数据表并插入数据

Step1:创建数据表student,代码如下:

CREATE TABLE student (
id bigint(20) NOT NULL AUTO_INCREMENT,
account varchar(255) DEFAULT NULL,
name varchar(255) DEFAULT NULL,
address varchar(255) DEFAULT NULL,
loadtime datetime DEFAULT NULL,
 PRIMARY KEY (id)
 ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

怎么升级kettle中的JavaScript kettle 更新数据太慢_字段_02

插入数据后,查询数据表如下图所示:select * from student;

怎么升级kettle中的JavaScript kettle 更新数据太慢_数据仓库_03

Step2:创建数据表student_scd2,代码如下:

CREATE TABLE student_scd2 (
id bigint(20) NOT NULL AUTO_INCREMENT,
account varchar(255) DEFAULT NULL,
name varchar(255) DEFAULT NULL,
address varchar(255) DEFAULT NULL,
updatetime datetime DEFAULT NULL,
version int(11) DEFAULT NULL,
date_from datetime DEFAULT NULL,
date_to datetime DEFAULT NULL,
id_1 bigint(20) DEFAULT NULL,
 PRIMARY KEY (id)
 ) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;

怎么升级kettle中的JavaScript kettle 更新数据太慢_字段_04

插入数据后,查询数据表如下图所示:select * from student_scd2;

怎么升级kettle中的JavaScript kettle 更新数据太慢_字段_05

2.“表输入student_scd2”的配置

Step1:双击‘表输入student_scd2’组件,设置数据库连接为sqlconn,并测试连接

怎么升级kettle中的JavaScript kettle 更新数据太慢_数据_06

Step2:获取SQl查询语句,设置表student最大的更新时间,其中,

使用coalesce()解释:返回参数中的第一个非空表达式(从左向右依次类推)

怎么升级kettle中的JavaScript kettle 更新数据太慢_大数据_07

3.“表输入student”的配置:

双击“表输入student”组件,设置缓慢维度变化维度是类型2(添加新的内容同时保存历史记录)

怎么升级kettle中的JavaScript kettle 更新数据太慢_大数据_08

3.“维度查询/更新student_scd2”的配置:

Step1:配置目标表、关键字段的名称、以及代理关键字段

怎么升级kettle中的JavaScript kettle 更新数据太慢_大数据_09

Step2:配置‘字段’选项卡,设置字段名称和与之匹配的流字段,更新的类型设置为插入

怎么升级kettle中的JavaScript kettle 更新数据太慢_数据_10

三、执行转换

点击按钮,执行转换,结果如下:

怎么升级kettle中的JavaScript kettle 更新数据太慢_数据仓库_11

四、实验结果:

输出结果数据表‘student_scd2’:

怎么升级kettle中的JavaScript kettle 更新数据太慢_大数据_12

五、实验总结

本次实验的目的主要是希望通过创建Kettle转换,利用“维度查询/更新”,“表输入”等组件,实现数据仓库缓慢变化维更新(类型2)的数据历史版本输出和保存。
本次实验过程中,在数据库运用的过程中,进一步增强了遇到问题网上搜索解决的能力,并从中获取更多的知识和运用。

附 件:

怎么升级kettle中的JavaScript kettle 更新数据太慢_数据仓库_13