我有一列create_time
,其值为'2018-01-12 16:27:59';
当我在jdbc input plugin
中使用logstash
将数据同步到Elastic Search
时。时间已经变为'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}"
}
}
答案 0 :(得分:0)
您可以在映射中设置所需的日期格式:
{
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
}
您还可以在将日期发送到logstash之前更改select语句并根据需要设置日期格式。