Как мне использовать sql_last_value в logstash?
Мне совершенно неясно, чтоsql_last_value
делает, когда я даю свое утверждение как таковое:
statement => "SELECT * from mytable where id > :sql_last_value"
Я могу немного понять причину его использования, когда он не просматривает всю таблицу БД для обновления полей, а только обновляет записи, которые были добавлены заново. Поправьте меня если я ошибаюсь.
Итак, что я пытаюсь сделать, это создать индекс с помощьюlogstash
в качестве таких:
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://hostmachine:3306/db"
jdbc_user => "root"
jdbc_password => "root"
jdbc_validate_connection => true
jdbc_driver_library => "/path/mysql_jar/mysql-connector-java-5.1.39-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
schedule => "* * * * *"
statement => "SELECT * from mytable where id > :sql_last_value"
use_column_value => true
tracking_column => id
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
}
}
output {
elasticsearch {
#protocol => http
index => "myindex"
document_type => "message_logs"
document_id => "%{id}"
action => index
hosts => ["http://myhostmachine:9402"]
}
}
Как только я это сделаю, документы вообще не будут загружены в индекс. Куда я иду не так?
Любая помощь может быть оценена.