码迷,mamicode.com
首页 > 其他好文 > 详细

利用触发器实现kettle数据同步

时间:2016-08-17 11:55:52      阅读:517      评论:0      收藏:0      [点我收藏+]

标签:

2016年8月17日

一、目的
通过触发器实现数据同步
二、思路
1.在数据库需要同步的源表中建立一个insert触发器,当有新数据插入时,会自动将新插入数据的主键记录到临时表temp中。(当然也可以记录多个字段)
2.比较临时表temp和源表中的数据,匹配两个表中的主键值是否一致(也可以匹配多个字段),将符合条件的源表数据筛选出来,同步到目标表。
3.当同步完数据之后,清空temp表中的数据,进行下一轮同步。
三、优缺点
1.优点
避免对相同数据的扫描,减少同步时间。
2.缺点
只在本地测试,未能在大数据环境下实施,不知道其稳定性如何。
四、环境配置
1.在源数据库中建立临时表temp
create table temp
(temp_id int primary key auto_increment,zhang_id int);
2.在源数据库中为源表创建触发器(如表zhang)
create trigger trig_zhang_insert
after insert
on zhang
for each row
insert into temp values (null,new.id);
五、具体步骤
1.主流程图设计

技术分享

2.“数据同步”模块设计
(1)“数据同步”作业设计

技术分享

(2)“源表与目标表转换”设计

 技术分享

技术分享

技术分享

注意:对表输出控件的“定义错误处理”配置如下

技术分享

当源表zhang无新数据插入,触发器没有往temp表中写入数据,进行“temp表与源表比较”操作时会报错,流程没办法继续进行。配置“定义错误处理”可以避免这种情况。
3.“善后工作”模块设计
(1)“善后工作”作业设计

技术分享

(2)“删除temp表数据”设计

 技术分享

技术分享

利用触发器实现kettle数据同步

标签:

原文地址:http://www.cnblogs.com/Evezhang-Home/p/5779113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!