У меня есть инструкция MySQL как таковая в моем jdbc
плагине на logstash
input.
statement => "SELECT * from TEST where id > :sql_last_value"
В моей таблице нет полей date
или datetime
как таковых. Итак, я пытаюсь обновить индекс, ежеминутно проверяя с помощью scheduler
, были ли добавлены новые строки в таблицу.
Я должен иметь возможность обновлять только новые записи, а не обновлять существующие изменения значений из существующей записи. Итак, для этого у меня есть такой ввод logstash
:
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://myhostmachine:3306/mydb"
jdbc_user => "root"
jdbc_password => "root"
jdbc_validate_connection => true
jdbc_driver_library => "/mypath/mysql-connector-java-5.1.39-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
schedule => "* * * * *"
statement => "SELECT * from mytable where id > :sql_last_value"
use_column_value => true
tracking_column => id
last_run_metadata_path => "/path/.logstash_jdbc_last_run"
clean_run => true
}
}
Поэтому всякий раз, когда я создаю индекс и запускаю этот logstash
файл, чтобы загрузить документы, он вообще не загружается. Количество документов равно нулю. Я убедился, что удалил .logstash_jdbc_last_run
, прежде чем запустить logstash
файл conf.
Часть вывода консоли logstash:
[2016-11-02T16: 33: 00,294] [ИНФОРМАЦИЯ] [logstash.inputs.jdbc] (0,002000 с) SELECT count (*) AS
count
FROM (SELECT * from TEST, где id> '2016-11-02 11:02 : 00 ') КАКt1
ПРЕДЕЛ 1
и это продолжается, ежеминутно проверяя, что является правильным, но тогда он не получает записи. Как это работает?
Я что-то упускаю? Любая помощь может быть оценена по достоинству.
clean_run => true
в своюjdbc
конфигурацию ввода? Это ненормально, что значение, используемое для сравнения с полем идентификатора, представляет собой дату2016-11-02 11:02:00
- person Val   schedule 02.11.2016clean_run
удаляет файл.logstash_jdbc_last_run
. Возможно, попробуйте также указатьtracking_column_type => "numeric"
, хотя это значение по умолчанию. - person Val   schedule 02.11.2016tracking_column_type =>
? Что вы подразумеваете под числовым? Вы хотите, чтобы я вставил что-то вроде 0 или 1 или просто само число? И я обновил вопрос с последней конф. - person Kulasangar   schedule 02.11.2016tracking_column_type => "numeric"
Это недокументированная настройка - person Val   schedule 02.11.2016