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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage