Logstash 将"yyyy-MM-dd"转换为"yyyy-MM-dd'T'HH:mm:ss.SSSZ"



我使用 logstash-input-jdbc 插件将我的数据从 mysql 同步到 elasiticsearch。但是,当我查看 elasticsearch 中的数据时,我发现所有日期类型的字段格式都从"yyyy-MM-dd"更改为"yyyy-MM-dd'T'HH:mm:ss。SSSZ"。我有近 200 个字段的类型是日期,所以我想知道如何配置 logstash,以便它可以输出格式"yyyy-MM-dd"而不是"yyyy-MM-dd'T'HH:mm:ss。SSSZ"。

Elasticsearch 将日期存储为 UTC 时间戳:

在内部,日期将转换为 UTC(如果指定了时区)并存储为表示自纪元以来的毫秒的长数字。

对日期的查询在内部转换为对此长表示形式的范围查询,聚合和存储字段的结果将转换回字符串,具体取决于与字段关联的日期格式。

因此,如果要保留 yyyy-MM-dd 格式,则必须将其存储为keyword(然后您将无法对其进行范围查询)。

您可以将 Kibana 的显示更改为仅显示 yyyy-MM-dd 格式,但请注意,它会将日期转换为查看器的时区,这可能会导致日期与您在输入字段中输入的日期不同。

如果要将日期

作为字符串引入,则需要为相关索引创建映射,以防止默认日期处理。

最新更新