思路1:

1、提前建好ts时间表,设置两个字段分别为current_t和load_t,current用于比较原表中日期的上限,load_t则为上次加载的日期,几位原表中日期的下限。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1 create table ts(
2 current_t datetime,
3 load_t datetime
4 )
5 select * from ts

kettle基于时间戳增量更新 随笔 第1张

 

 

2.1、新建转换1,获取当前系统日期,并赋值给变量${SYSDATA},然后更新到ts表中

在同一转换中通过表输入获取上次加载日期,并赋值给变量${CURRENT_T}

kettle基于时间戳增量更新 随笔 第2张

kettle基于时间戳增量更新 随笔 第3张

kettle基于时间戳增量更新 随笔 第4张

 

 kettle基于时间戳增量更新 随笔 第5张

kettle基于时间戳增量更新 随笔 第6张

 

kettle基于时间戳增量更新 随笔 第7张

 

 2.2抽取增量数据,并更新

kettle基于时间戳增量更新 随笔 第8张

kettle基于时间戳增量更新 随笔 第9张

 

 2.3更新加载日期

kettle基于时间戳增量更新 随笔 第10张

 

 kettle基于时间戳增量更新 随笔 第11张

3.1数据抽取作业

kettle基于时间戳增量更新 随笔 第12张

 

 原始数据表

kettle基于时间戳增量更新 随笔 第13张

同步更新表:

kettle基于时间戳增量更新 随笔 第14张

时间表:

kettle基于时间戳增量更新 随笔 第15张

运行作业:

 kettle基于时间戳增量更新 随笔 第16张

kettle基于时间戳增量更新 随笔 第17张

注:1、数据库中ts表日期设置为datatime格式,kettle在运行中转化为datatime2格式,在增量抽取过程中可能会报错,因此需要在获取load_t时设置转换为datatime格式;

思路2:

 首先通过select获取待更新表中max(时间戳),然后通过占位符引用改值获取原始表的中增量数据,最后通过插入更新的方式完成增量抽取。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄