Kettle增量抽取数据,并实时监控周期任务执行情况
Kettle数据增量抽取数据配置说明
前提
数据源表有唯一递增sequence或者有入库时间。否则无法使用增量取数据。如果数据源有业务时间,如wifi的连接时间,因为设备不同,连接时间也是错乱的,所以入库时间是必要的。
抽取演示
抽取test表里的数据,输出为json文件
任务记录表
抽取配置
第一步:添加初始化任务记录
在任务记录表中增加一个要同步的数据的初始记录。
如:从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)
图1
图2
第三步:获取任务表上次一执行的序列
开始》拖入表输入》配置数据库连接,任务记录表,test数据类型最新的序列》键入sql语句》修改test为当前接入的数据类型
第四步:接着上一次序列取数据
注意:如果是入库时间序列,where条件需要根据mysql和oracle库来调整格式化日期函数。
第五步:调整时间字段输出格式
开始》拖入字段选择》点击元数据》点击获取改变的字段,或者手动添加时间字段》去除与时间无关的字段》按照标记添加时间转换》结束
原因:没有配置时间格式转换,输出的时间会被转换,dex无法接入。看下图配置前后。
第六步:配置输出文件
开始》拖入JSON outPut》点击一般》除了文件名之外其他全部修改为标注的地方,仔细确认》点击字段》获取字段》如不想要某个字段,在此剔除,或者在写表输入sql时就剔除。
第七步:记录当前执行的最大序列
开始》拖入插入/更新》配置数据库连接为任务记录表》其他与标记保持一致》结束
此处连接一定要选择“复制”而不是“分发”。
第八步:配置定时任务
略
下一篇:linux部署kettle方案。