kettle同步oracle数据库,使用Kettle同步数据

增加+更新+删除

这种数据同步情况,可细分为以下2种情况:

1)        源库有表保存删除、更新和新增的信息。

通过条件判断,分别进行“插入/更新”和“删除”即可,如下图所示。

dd06a1abc3fb84da465ff4eff32374f6.gif

8.jpg (12.08 KB, 下载次数: 64)

2012-12-24 14:41 上传

2)        源库没有保存增删改信息

Kettle提供了一种对比增量更新的机制处理这种情况,可通过“合并记录”步骤实现,该步骤的输入是新旧两个数据源,通过关键字进行数据值比对,对比结果分为以下4种类型:

“Identical” : 关键字在新旧数据源中都存在,域值相同

“changed” : 关键字在新旧数据源中都存在,但域值不同

“new” :  旧数据源中没有找到关键字

“deleted”:  新数据源中没有找到关键字

两个数据源的数据都进入下一步骤,上述4种结果类型作为输出表的标志字段进行保存。

以下为示例:

Ø  源数据库测试脚本

create table k1 (f1 varchar2(200),f2varchar2(200))

truncate table k1;

insert into k1(f1,f2) values('1','11');

insert into k1(f1,f2) values('2','22');

insert into k1(f1,f2) values('5','5');

commit;

Ø  目标数据库测试脚本

create table k1 (f1 varchar2(200),f2varchar2(200))

truncate table k1;

insert into k1(f1,f2) values('1','1');

insert into k1(f1,f2) values('2','2');

insert into k1(f1,f2) values('3','3');

insert into k1(f1,f2) values('4','4');

commit;

合并过程如下:

dd06a1abc3fb84da465ff4eff32374f6.gif

9.jpg (22.7 KB, 下载次数: 79)

2012-12-24 14:41 上传

其中“合并记录”步骤的选项:

dd06a1abc3fb84da465ff4eff32374f6.gif

10.jpg (25.08 KB, 下载次数: 38)

2012-12-24 14:41 上传

执行后,查询K1_TEST结果如下:

dd06a1abc3fb84da465ff4eff32374f6.gif

11.jpg (7.75 KB, 下载次数: 27)

2012-12-24 14:41 上传

可以看到,该结果表的BZ字段保存了更新、删除、新增的记录信息,通过条件分支即可分别对这些记录进行相应的处理。

“条件”选项:

dd06a1abc3fb84da465ff4eff32374f6.gif

12.jpg (37.97 KB, 下载次数: 36)

2012-12-24 14:41 上传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值