sql_last_value в logsta sh всегда 351 - PullRequest
0 голосов
/ 17 января 2020

Я работал над вставкой индексов вasticsearch, используя logsta sh. Мой conf выглядит так:

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/sample"
        jdbc_user => "root"
        jdbc_password => ""
        jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-5.1.48.jar"
        jdbc_driver_class => " com.mysql.jdbc.Driver"
        tracking_column => "time"
        use_column_value => true
        statement => "SELECT time, firstname, lastname, email FROM sample.sample where time > :sql_last_value;"
        schedule => " * * * * * *"
}
}
output {
    elasticsearch {
document_id=> "%{time}"
    document_type => "doc"
        "hosts" => ["myhost"]
        "index" => "sample" 
    }
stdout{
  codec => rubydebug
  }
}

Когда я запускаю этот файл с помощью logsta sh, я получаю запрос:

SELECT time, firstname, lastname, email FROM sample.sample where time > 351

Но столбец time равен currenttimestamp в База данных MySQL, которую я отслеживаю, и я думаю, sql_last_value содержит значение этого поля. Я делаю что-то неправильно, связанное с sql_last_value

1 Ответ

0 голосов
/ 17 января 2020

Что я делал неправильно: нам нужно указать tracking_column_type, если tracking_column не имеет тип int. В моем случае tracking_column имеет тип timestamp. Итак, мне нужно добавить:

tracking_column_type =>"timestamp"

Это решило мою проблему.

...