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 不更新元数据?
这是因为您的比较运算符 大于或等于 即 >=
请将其更改为 >
它将解决您的问题。
希望对你有帮助。
在我的 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 不更新元数据?
这是因为您的比较运算符 大于或等于 即 >=
请将其更改为 >
它将解决您的问题。
希望对你有帮助。