【发布时间】:2018-05-30 11:18:08
【问题描述】:
在我的 Logstash 中,我想在查询中使用 :sql_last_value 和 conf 文件中的 tracking_column 选项从数据库下载最新数据。我已经设置
last_run_metadata_path 因为我有 2 个管道用于同一个表,但 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 不更新元数据?
【问题讨论】:
标签: elasticsearch logstash elastic-stack