有时候需要进行大数据量的抽取,kettle的插入/更新组件就不适用了,这时候可以考虑根据时间戳进行增量更新。
下面是根据时间戳进行增量同步的一个测试例子:
环境:
2个不同机器上数据库,一个源数据库数据不定时更新,一个目标数据库2分钟定时进行数据抽取。(或者一个机器上2个不同的数据库,一个进行数据更新,一个定时进行数据的抽取)
源数据表和目标数据表结构一样:
源数据库表:
目标数据库表(从源数据库表),目标数据库表开始要有一个时间。
步骤:
拉取3个组件,2个表输入,一个表输出
表输出连接的数据库是目标数据库,先查询到目标数据库最新的时间
表输入2连接的数据库是源数据库,勾选替换SQL语句的便来给你和选择从第一个表输入步骤插入数据,插入的数据是目标表查询到的最新时间,供源数据库判断。这样作业的时候,就会不断的插入新更新的数据。
配置表输入
拉取作业,配置作业定时调度2分钟
在此期间,往源数据库表中添加数据,定时任务开启,可以看到数据定时往目标数据库表中更新。