美文网首页java
Kettle增量抽取数据,并实时监控周期任务执行情况

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

作者: 嘀老年卡 | 来源:发表于2020-11-16 19:11 被阅读0次

    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方案。

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/fjmzbktx.html