Kettle增量抽取数据,并实时监控周期任务执行情况

Kettle数据增量抽取数据配置说明

前提

数据源表有唯一递增sequence或者有入库时间。否则无法使用增量取数据。如果数据源有业务时间,如wifi的连接时间,因为设备不同,连接时间也是错乱的,所以入库时间是必要的。

抽取演示

抽取test表里的数据,输出为json文件


Kettle增量抽取数据,并实时监控周期任务执行情况_第1张图片

任务记录表


Kettle增量抽取数据,并实时监控周期任务执行情况_第2张图片

抽取配置

第一步:添加初始化任务记录

在任务记录表中增加一个要同步的数据的初始记录。

如:从20201026142854开始抽取数据,数据类型对应test

或者:1

第二步:获取当前任务中,数据源表最新的序列

开始》拖入表输入》配置数据库连接,连接数据源表》键入sql语句,如图》修改datatype_name为要接入的数据类型》结束

注意事项(Mysql)

]如果数据源表有入库时间字段,则只需替换下图的ds为对方的入库时间字段。Test为数据类型。(如图1)

如果对方有递增sequence,此处DATE_FORMAT(max(ds),'%Y%m%d%H%i%s'),修改为max(ds),ds用sequence字段替换。(如图2)

注意事项(Oracle)


Kettle增量抽取数据,并实时监控周期任务执行情况_第3张图片

图1

Kettle增量抽取数据,并实时监控周期任务执行情况_第4张图片

图2

第三步:获取任务表上次一执行的序列

开始》拖入表输入》配置数据库连接,任务记录表,test数据类型最新的序列》键入sql语句》修改test为当前接入的数据类型


Kettle增量抽取数据,并实时监控周期任务执行情况_第5张图片

第四步:接着上一次序列取数据

注意:如果是入库时间序列,where条件需要根据mysql和oracle库来调整格式化日期函数。


第五步:调整时间字段输出格式

开始》拖入字段选择》点击元数据》点击获取改变的字段,或者手动添加时间字段》去除与时间无关的字段》按照标记添加时间转换》结束


Kettle增量抽取数据,并实时监控周期任务执行情况_第6张图片

原因:没有配置时间格式转换,输出的时间会被转换,dex无法接入。看下图配置前后。


Kettle增量抽取数据,并实时监控周期任务执行情况_第7张图片


Kettle增量抽取数据,并实时监控周期任务执行情况_第8张图片

第六步:配置输出文件

开始》拖入JSON outPut》点击一般》除了文件名之外其他全部修改为标注的地方,仔细确认》点击字段》获取字段》如不想要某个字段,在此剔除,或者在写表输入sql时就剔除。



Kettle增量抽取数据,并实时监控周期任务执行情况_第9张图片
Kettle增量抽取数据,并实时监控周期任务执行情况_第10张图片

第七步:记录当前执行的最大序列

开始》拖入插入/更新》配置数据库连接为任务记录表》其他与标记保持一致》结束

此处连接一定要选择“复制”而不是“分发”。


Kettle增量抽取数据,并实时监控周期任务执行情况_第11张图片

第八步:配置定时任务

下一篇:linux部署kettle方案。

你可能感兴趣的:(Kettle增量抽取数据,并实时监控周期任务执行情况)