数据清洗小记(11):Kettle_利用设置变量实现数据增量(小例)

2015-11-21 01:27:20 · 作者: · 浏览: 2

【背景】
利用kettle工具,完成某表的增量工作。
【解决】
利用模块完成即可,如下简图:
这里写图片描述
【实验】
先手工准备一个实验环境:
准备基本完成如下效果:
select t.*, t.rowid from EMP_ETL t
这里写图片描述

select max(hiredate) maxsj from EMP_ETL
这里写图片描述vcz1yv2+3bf7us/V4rj2zPW8/qOsyOfPws28y/nKvqO6PGJyIC8+DQo8aW1nIGFsdD0="这里写图片描述" src="https://www.cppentry.com/upload_files/article/57/1_qqyoh__.png" title="\" />
编写时间戳ktr转换过程,把原表中最大的hiredate作为变量,如下图:
这里写图片描述
下面在“表输入”环节中,使用传递过来的${MAXSJ}作为条件,完成向目标表插入数据,简要流程如下:
这里写图片描述
执行转换,完成数据插入,简图如下:
这里写图片描述
补充:这只是一个简单的举例,对于使用时间戳的方式来完成增量时,这个实验中的方法如果每次都是全表max,当数据量特别大时,效率将大打折扣。而此时,我们就需要添加一个时间戳记录表,另添加一个时间戳字段,每次抽取结束后,将每次抽取后最晚一条记录的时间戳时间记录到时间戳表中,然后每次查询起点时间时只需要从时间戳表中提取即可。

小知识,简而记之。