- 首先确定数据来源表和目标表
我本地创建了两个 MySql 数据库做测试
可以看到,数据来源表(localTest1,以下简称表1)是有10条数据,目标表(localTest2,以下简称表2)有5条数据。
现在要把表1中6-10插入到表2中去。
- 在kettel中新建转换
右键转换,选择新建
先建立条件
在“输入”下拉中,把“表输入”拉至右边空白处
然后右键拉过来的“表输入”,选择“编辑步骤”
在步骤里面选择新建数据库连接,连接到“目标表”(表2)
查询“目标表”(表2)的数据最大id
在sql中输入查询语句,点击下发“确定”
根据“目标表”(表2)的条件查询“来源表”(表1)的数据
用同样的方式,从“输入”下拉中,把“表输入”拉至右边空白处
在里面新建上表1的数据库连接方式,并且输入需要查询的sql(点击获取SQL查询语句可以快速生成sql)
把表2查出来的条件加入到表1的查询中
选中表2的查询结果(最大ID),增加一个连接到表1的查询结果中
在表1的查询语句中增加“WHERE id > ? ”
并且勾选“替换SQL语句里的变量”
在“从步骤查询数据”下拉框中,选择表2的查询
插入数据到表2(目标表)中
从“输出”中拉一个“插入/更新”到转换界面,并且连在最后方
数据库选择表2的连接,点击“目标表”后面的“浏览”,选择表2,
点击红框中的“获取字段”和“获取和更新字段”,让列表中显示需要读取和插入的字段,不需要插入就把列表中“更新”改为N
执行转换
点击执行转换,把转换文件保存起来(kettle需要保存转换才会执行)。
最后数据展示: