【问题标题】:push data from the last updated_on date从最后一个 updated_on 日期推送数据
【发布时间】:2019-09-26 20:16:54
【问题描述】:

所以我在我的 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 。

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

【问题讨论】:

    标签: elasticsearch logstash elastic-stack


    【解决方案1】:

    所以这是your current configuration

        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)。

    所以你的配置已经达到了你的预期。

    【讨论】:

    • 我已经在使用提到的了。抱歉,我没有把它放在这个问题上。但它仍然是一样的。它总是需要执行时间。 @val
    • 你怎么知道的?你看到正在运行的查询吗?
    • 当我执行 logstash -f myconffile.conf 时,它显示 [2019-09-26T11:51:22,089][INFO ][logstash.inputs.jdbc ] (0.087419s) SELECT * from agedata WHERE updated_on > '2019-09-26T11:43:00.000' ORDER BY updated_on 其中提到的时间戳实际上是我最后一次运行时间,这就是我发现的。代替 sql_last_value,提到了时间戳。 @val
    • 你在c:/Users/<username>/.logstash_jdbc_last_run看到了什么?
    • 查询运行后最新的updated_on 值是多少?
    猜你喜欢
    • 1970-01-01
    • 2021-11-12
    • 2014-12-14
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    相关资源
    最近更新 更多