elasticsearch logstash中的sql_last_值始终为351,elasticsearch,jdbc,logstash,logstash-jdbc,elasticsearch,Jdbc,Logstash,Logstash Jdbc" /> elasticsearch logstash中的sql_last_值始终为351,elasticsearch,jdbc,logstash,logstash-jdbc,elasticsearch,Jdbc,Logstash,Logstash Jdbc" />

elasticsearch logstash中的sql_last_值始终为351

elasticsearch logstash中的sql_last_值始终为351,elasticsearch,jdbc,logstash,logstash-jdbc,elasticsearch,Jdbc,Logstash,Logstash Jdbc,我正在使用logstash将索引插入elasticsearch。我的配置文件如下所示: input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/sample" jdbc_user => "root" jdbc_password => "" jdbc_driver_library => "/usr/share/logst

我正在使用logstash将索引插入elasticsearch。我的配置文件如下所示:

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
  }
}
当我使用logstash执行此文件时,我得到一个查询:

SELECT time, firstname, lastname, email FROM sample.sample where time > 351
但是在我正在跟踪的MySQL数据库中,
time
列是
currenttimestamp
,我认为
sql\u last\u value
包含这个字段的值。我是否做了与
sql\u last\u值相关的错误操作

我做错了什么: 如果跟踪列不是int类型,我们需要指定跟踪列的类型。在我的例子中,跟踪列的类型是timestamp。因此,我需要补充:

tracking_column_type =>"timestamp"
这解决了我的问题