Logstash не обновляет файл метаданных последнего запуска - PullRequest
0 голосов
/ 30 мая 2018

В моем 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 не обновляет метаданные?

1 Ответ

0 голосов
/ 04 июня 2018

Это потому, что ваш оператор сравнения больше или равен т.е. >=, пожалуйста, измените его на >, и это решит вашу проблему.Надеюсь, это поможет.

...