Logstash 未更新最后一个 运行 元数据文件

Logstash not updating last run metadata file

在我的 Logstash 中,我想使用查询中的 :sql_last_value 和 conf 文件中的 tracking_column 选项从数据库下载最新数据。我已经设置 last_run_metadata_path 因为我有 2 个管道用于相同的 table 但 Logstash 仅保存最后一次日期或停止保存新日期,现在我可以在日志中看到它使用相同的 :sql_last_value 运行查询元数据文件。

这就是我的 conf 文件的样子,它有许多 jdbc 输入,其中之一如下:

  jdbc {
        jdbc_driver_library => "/opt/logstash/lib/ojdbc8.jar"
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
        jdbc_connection_string => ""
        jdbc_user => ""
        jdbc_password => ""
        schedule => "*/15 * * * *"
        statement_filepath => "/etc/logstash/queries/UAT/transactions_UAT.sql"
        use_column_value => true
        tracking_column => 'sys_created_on'
        tracking_column_type => "timestamp"
        last_run_metadata_path => "/etc/logstash/conf.d/lastrun_metadata/transactions_uat_metadata"
        tags => ["transactions_uat"]
  }

元数据文件的内容:

--- 2018-05-26 08:41:55.000000000 -04:00

我可以在日志中看到 Logstash 始终使用元数据文件中的相同日期,更新版本更新它:

select * from snc_uat.syslog_transaction0007
 where "sys_created_on" >= TIMESTAMP '2018-05-26 08:41:55.000000 -04:00' 

Logstash 正在运行并正在下载最新数据,但不必要地处理已经存在的数据。为什么 Logstash 不更新元数据?

这是因为您的比较运算符 大于或等于 >= 请将其更改为 > 它将解决您的问题。 希望对你有帮助。