在logstash中使用jdbc输入插件时的java时间更改

xqkwcwgp  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(275)

我有一个专栏 create_time 值为“2018-01-12 16:27:59”;当我使用 jdbc input pluginlogstash 同步数据到 Elastic Search . es中的时间已更改为“2018-01-12t08:27:59.000z”。我知道es的时区是utc,这与我的时区不同。如何修复数据?这是我的配置文件:

input {
    jdbc {
      jdbc_connection_string => 'jdbc:mysql://*:3306/*?'
      jdbc_user => '*'
      jdbc_password => '*'
      jdbc_driver_library => 'mysql-connector-java-5.1.45-bin.jar'
      jdbc_driver_class => 'com.mysql.jdbc.Driver'
      statement => 'select * from test where create_time > :sql_last_value'
      use_column_value => true
      tracking_column => "create_time"
      tracking_column_type => "timestamp"
      jdbc_default_timezone => "Asia/Shanghai"
      jdbc_fetch_size => "1000"
      schedule => '* * * * *'
    }
}
output {
    stdout {
        codec => json_lines
    }

    elasticsearch {
        hosts => 'localhost:9200'
        index => 'test-1 '
        document_id => "%{id}"
    }

}
z3yyvxxp

z3yyvxxp1#

您可以在Map中设置所需的日期格式:

{
  "mappings": {
    "my_type": {
      "properties": {
        "date": {
          "type":   "date",
          "format": "yyyy-MM-dd"
        }
      }
    }
  }
}

参考弹性日期格式
您还可以更改select语句,并根据需要设置日期格式,然后再将其发送到logstash。

相关问题