kettle同步oracle数据库,使用Kettle同步数据
增加+更新+删除这种数据同步情况,可细分为以下2种情况:1)源库有表保存删除、更新和新增的信息。通过条件判断,分别进行“插入/更新”和“删除”即可,如下图所示。8.jpg (12.08 KB, 下载次数: 64)2012-12-24 14:41 上传2)源库没有保存增删改信息Kettle提供了一种对比增量更新的机制处理这种情况,可通过“合并记录”步骤实现,该步骤的输...
增加+更新+删除
这种数据同步情况,可细分为以下2种情况:
1) 源库有表保存删除、更新和新增的信息。
通过条件判断,分别进行“插入/更新”和“删除”即可,如下图所示。

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;
合并过程如下:

9.jpg (22.7 KB, 下载次数: 79)
2012-12-24 14:41 上传
其中“合并记录”步骤的选项:

10.jpg (25.08 KB, 下载次数: 38)
2012-12-24 14:41 上传
执行后,查询K1_TEST结果如下:

11.jpg (7.75 KB, 下载次数: 27)
2012-12-24 14:41 上传
可以看到,该结果表的BZ字段保存了更新、删除、新增的记录信息,通过条件分支即可分别对这些记录进行相应的处理。
“条件”选项:

12.jpg (37.97 KB, 下载次数: 36)
2012-12-24 14:41 上传
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)