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

Java知识分享网

        
AI编程,程序员挑战年入30~100万高级指南 - 职业规划
SpringBoot+SpringSecurity+Vue权限系统高级实战课程        

IDEA永久激活

Java微信小程序电商实战课程(SpringBoot+VUe)

     

AI人工智能学习大礼包

     

PyCharm永久激活

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

     

Cursor+Claude AI编程 1天快速上手视频教程

     
当前位置: 主页 > 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” 命名为-获得目标表最大修改时间(作为源表数据过滤条件)

 

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


锋哥推荐