Logstash преобразует «гггг-ММ-дд» в «гггг-ММ-дд'ТХХ: мм: сс.СССЗ» - PullRequest
0 голосов
/ 07 января 2019

Я использую плагин logstash-input-jdbc для синхронизации моих данных из mysql в elasiticsearch. Однако, когда я посмотрел на данные вasticsearch, я обнаружил, что формат полей всех типов дат изменился с «гггг-ММ-дд» на «гггг-ММ-дд'Т'ХХ: мм: сс.СССЗ» .У меня около 200 полей с типом даты, поэтому я хочу знать, как настроить logstash, чтобы он мог выводить формат «гггг-ММ-дд» вместо «гггг-ММ-дд'Т'ХХ: мм: сс» .SSSZ».

1 Ответ

0 голосов
/ 07 января 2019

Elasticsearch хранит даты как метки времени UTC:

Внутренне даты конвертируются в UTC (если указан часовой пояс) и сохраняются в виде длинного числа, представляющего миллисекунды с начала эпохи.

Запросы по датам внутренне преобразуются в запросы диапазона в этом длинном представлении, а результат агрегации и сохраненные поля преобразуются обратно в строку в зависимости от формата даты, связанного с полем.

Так что, если вы хотите сохранить формат yyyy-MM-dd, вам нужно будет сохранить его как keyword (который вы тогда не сможете выполнять в диапазоне запросов).

Вы можете изменить отображение Kibana, чтобы оно отображало только формат yyyy-MM-dd, но учтите, что оно преобразует дату во временную зону зрителя, что может привести к тому, что день будет отличаться от дня, введенного вами в поле ввода.

Если вы хотите использовать дату в виде строки, вам нужно создать сопоставление для рассматриваемого индекса, чтобы предотвратить обработку даты по умолчанию.

...