Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Kettle 增量式更新 PDF 下载


分享到:
时间:2021-03-13 10:16来源:http://www.java1234.com 作者:转载  侵权举报
Kettle 增量式更新 PDF 下载
失效链接处理
Kettle 增量式更新 PDF 下载


本站整理下载:
提取码:ei5i 
 
 
相关截图:
 
主要内容:


一、工作原理
分成2个独立的transformation ,一个负责 insert/update,另一个只负责delete。然后在一个job里,将二者结合。
 
insert/update 增量同步原理:采用的是“时间戳”的方式,来从源表中过滤出需要增量更新的数据,然后利用kettle的”insert/update” 本身的功能自动判断是“insert” 还是 ”update”不需要人工介入;另外,对于“update“操作,需要建立个”before update” 触发器,来更新时间戳字段,来表明未被同步的update操作。
 
delete操作的增量同步原理:使用一个中间表来记录删除的源表”主键“,“主键”数据通过在源表建立“after delete” 触发器写入。该表作为“目标表”删除数据的判断依据,当目标表删除完成后,将中间表数据清空;
 
二、实施
0.准备工作:
在源和目的端分别创建测试表ggtest1.t1_1
create table ggtest1.t1_1
(pid number primary key  ,
name varchar2(10 char),
age number)
//注意,源表必须限定主键不能被更新(如果源表无主键,应该增加代理主键)
 
 
1.insert/update 同步方案:
(1)在源表和目的表均增加时间戳字段。
alter table ggtest1.t1_1 add (moddate timestamp(6) default current_timestamp);
并在该字段上创建索引:
create Index  IDX_t1_1_moddate  on ggtest1.t1_1(moddate);
 
 
(2)在源表上创建before update触发器,用于update时候对时间戳进行更新
create or replace trigger ggtest1.tr_ggtest1_t1_1_moddate
before update
on ggtest1.t1_1
referencing old as old new as new
for each row
begin
 :new.moddate := current_timestamp;
end;
;
/
(3)在Kette中配置Transformation
效果如下:
 
 
    配置如下:
    (3.1) 
新建一个“Transformation“;
创建一个“Table input” 命名为-获得目标表最大修改时间(作为源表数据过滤条件)

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐