【实验目的】
1.明白Kettle的“表输入”,“插入/更新”组件背后的基本运行过程,以得到期望值。
2.熟练掌握“表输入”,“插入/更新”组件的使用,实现不同数据表数据内容的改变。
【实验原理】
首先说明各个表的作用:cdc_opt_log表是记录用户对那些数据进行了哪些操作,同时记录该操作是否被处理,拉取成功后,我们需要让系统将cdc_opt_log表中字段名为“cdctype”更新为“已处理”; student_cdc_sync表保存插入操作的增量数据;基于上一个实验的数据更新的实例,基于“插入/更新”组件建立转换,使得用户进行插入操作后,将cdc_opt_log表中字段名为“cdctype”更新为“已处理”。
【实验环境】
操作系统:Windows10
Kettle版本:7.1.0.0
jdk版本:1.8.0及以上版本
【实验步骤】
一、建立转换
双击spoon.bat打开kettle。(1)点击新建按钮,在下拉菜单中点击选择“转换”即可创建;(2)然后点击“保存”重命名该转换文件,保存在某个指定的路径;(3)选择输入步骤、输出步骤和跳。
二、各组件的配置
1.MySQL数据库创建相关表,具体如下:
其中student_cdc表的触发器配置如下所示:
2.“CDC日志表输入”的配置
Step1:双击‘自定义常量数据’组件,配置数据库连接
Step2:获取SQL语句,并编写其相关的where语句
3.“学生表输入”的配置:
双击“学生表输入”组件,获取SQL查询语句,并编写其where语句,以及转换运行后所期望得到的cdc_option_log表的对应字段的内容改变
4.“插入学生同步表”的配置:
双击‘插入学生同步表’组件,配置目标表的名称,填写查询的的关键字以及插入的字段
5.“更新CDC日志表”的配置:
双击‘更新CDC日志表’组件,配置目标表的名称,填写查询的的关键字以及插入字段的名称
三、执行转换
点击按钮,执行转换,结果如下:
四、实验结果:
输入文件‘cdc_option_log’:
输入文件‘student_cdc’
输出文件‘student_cdc_sync’
输出文件‘cdc_option_log’:
五、实验中遇到的困难
(一)因疏忽忘记在Mysql里创建目标表:
(二)盲目的照着书上所说,对学生表输入进行配件,导致错误
六、实验总结
本次实验主要是在Mysql数据库中基于触发器的插入操作捕获变化的数据并将其变化标志记录在另一个表格中。本次实验的student_cdc表在设计时未设置时间,使得输入文件和输出文件在内容上并无差别,这是本实验的不足之处。
实验中遇到的错误主要是由于我较为盲目的按照书本的代码内容执行,使得本该就不该存在的东西最终硬是让它输出,最后导致莫名其妙的报错,真的是老师讲的时候能理解是一回事,并不代表你已经理解其本质的信息,到真正使用的时候懵懵懂懂,不理解其背后操作的原因,致使程序运行不出来,往后多多上手实操,弥补一些自身的短板,进一步提高自己对软件使用的熟练程度。