Wie soll ich sql_last_value in logstash verwenden?
Ich bin mir ziemlich unklar, wassql_last_value
tut, wenn ich meine Aussage als solche gebe:
statement => "SELECT * from mytable where id > :sql_last_value"
Ich kann den Grund für die Verwendung leicht verstehen, bei dem nicht die gesamte DB-Tabelle durchsucht wird, um Felder zu aktualisieren. Stattdessen werden nur die neu hinzugefügten Datensätze aktualisiert. Korrigiere mich, wenn ich falsch liege.
So was ich versuche zu tun ist, erstellen Sie den Index mitlogstash
so wie
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"]
}
}
Wenn ich das mache, werden die Dokumente überhaupt nicht in den Index hochgeladen. Wo gehe ich falsch?
Jede Hilfe wäre willkommen.