В моем Logstash я хочу загрузить из базы данных самые последние данные, используя :sql_last_value
в запросе и tracking_column
в файле conf.Я установил 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
Iв журналах видно, что Logstash всегда использует одну и ту же дату из файла метаданных и обновляет ее:
select * from snc_uat.syslog_transaction0007
where "sys_created_on" >= TIMESTAMP '2018-05-26 08:41:55.000000 -04:00'
Logstash работает и загружает последние данные, но без необходимости обрабатывает данные, которые уже существуют.Почему Logstash не обновляет метаданные?