Kettle 增量同步


增量同步的总体思路是:首先,获取此表的增量数据。

如何获得增量?源表需要一个时间字段来代表该记录的最新更新时间(只要该记录发生变化,时间字段就会更新)。

当然,最好有一个时间字段。如果没有,您可能需要进行全表比较等操作;通常,业务系统的表中有主键。在我们获得增量数据后,我们需要判断记录的新插入或更新记录。

如果是更新记录,我们需要先将数据加载到中间表,然后根据主键删除目标表中现有的数据,最后将此增量数据插入目标表。

本教程简单介绍了如何通过kettle实现简单的数据增量同步。

job如下:

如下转换:获取区服列表,将id列表保存到结果(内存)

job: 同构数据库单表抽取(每个输入执行一次)

同构数据库单表抽取(job) 的具体实现如下:

转换:获取数据库连接ID

从结果获取本次输入id,并设置为变量parmid

转换:获取数据库连接信息

转换:获取最大时间

获取目标的最大时间并设置变量

获取源表最大时间并设置变量,注(源数据库连接dblink为动态连接)

dblink:

转换:删除目标表最后时间点的数据(防止同一秒中出现多条记录,漏数据)

转换:抽取数据

转换:写入ETL日志


评论区(0)

评论