У меня есть столбец 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}"
}
}
Вы можете установить формат даты, который вам нужен в сопоставлениях:
{
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
}
Вы также можете изменить оператор select и отформатировать дату как необходимо, прежде чем отправлять ее в logstash.