目的
在数据库A和数据库B中分别创建表userA和表userB。最终目标为将数据表userA中的数据插入更新到数据表userB中。
create database testA;
use testA;
create table `userA`(
`id`int(10) primary key,
`name` varchar(50),
`age` int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into userA values(1,'张三',25);
insert into userA values(2,'李四',29);
insert into userA values(3,'王五',28);
insert into userA values(4,'赵六',28);
create database testB;
use testB;
create table `userB`(
`idB`int(10) primary key,
`nameB` varchar(50),
`ageB` int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into userB values(1,'张三',20);
insert into userB values(2,'李四',21);
insert into userB values(3,'王五',22);
操作步骤
1、运行软件,进入主界面。点击左上角的 文件 → 新建 → 转换 ,新建一个转换,并保存,转换的后缀名为.ktr。
2、点击面板左侧的 主对象树 ,选择 DB连接 右键,选择 新建 或 新建数据库连接向导 分别创建对数据库A和数据库B的连接。
3、点击面板左侧的 核心对象 ,选择 输入文件夹下的 表输入 并把它拖到右侧的编辑区中。
4、双击编辑区的“表输入”图标,编辑数据输入源。
5、点击面板左侧的 核心对象 ,选择 输出文件夹下的 插入/更新 并把它拖到右侧的编辑区中,按住 shift 画线连接 “表输入”。
6、双击编辑区的 “插入/更新” 图标,编辑控件内容。
用来查询的关键字,此处只选择主键id,表示这里按照id查询,如果此id存在,则更新数据,若不存在则插入数据。
7、到这里,我们最简单的一个插入/更新数据的转换已经建立完成了,点击 “校验这个转换”,Kettle会校验并给出简单的报告。没有任何问题。
8、点击“运行这个转换”,选择“本地执行”,点击“启动”来执行这个转换。
9、转换成功后,我们可以在控制台中看到如下信息。检查本地数据库,数据库A的userA表中的数据已经全部被插入更新到了数据库B的userB表中。
注:此示例适用于插入和更新目标源数据,无法将已经源表中的删除的记录同步到目标表中