Изменение времени при использовании входного плагина jdbc в logstash

0

У меня есть столбец 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}"
    }


}
Теги:
jdbc
elasticsearch
logstash

1 ответ

0

Вы можете установить формат даты, который вам нужен в сопоставлениях:

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

См. Упругие форматы дат

Вы также можете изменить оператор select и отформатировать дату как необходимо, прежде чем отправлять ее в logstash.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню