首页 > 解决方案 > 从最后一个 updated_on 日期推送数据

问题描述

所以我在我的 jdbc logstash 输入中使用以下查询。

statement => "SELECT * from mydata WHERE updated_on > :sql_last_value  ORDER BY updated_on"
use_column_value =>true
tracking_column =>updated_on
tracking_column_type => "@timestamp"

或者

statement => "SELECT * from mydata WHERE  :sql_last_value > updated_on ORDER BY updated_on"
use_column_value =>true
tracking_column =>updated_on
tracking_column_type => "@timestamp"

在这里,我的 :sql_last 值被认为是配置文件的最后运行时间。例子:

"updated_on": "2019-09-26T08:11:00.000Z",
"@timestamp": "2019-09-26T08:17:52.974Z"

这里我的 sql_last_value 对应于@timestamp,我希望它考虑 updated_on 。

如何更改它以考虑最后一个 updated_on 日期而不是执行时间?

标签: elasticsearchlogstashelastic-stack

解决方案


所以这是您当前的配置

    statement => "SELECT * from agedata WHERE updated_on > :sql_last_value ORDER BY updated_on"
    use_column_value => true
    tracking_column => updated_on
    tracking_column_type => "timestamp"

它所说的基本上是该sql_last_value变量将存储/记住updated_on上次运行以来列的最后一个use_column_valuetrue不是您建议的上次运行时间值,否则use_column_value将是false)。

因此,您的配置已经达到了您的预期。


推荐阅读