我使用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”。
答案 0 :(得分:0)
Elasticsearch将日期存储为UTC时间戳:
在内部,日期会转换为UTC(如果指定了时区),并存储为一个整数,表示自纪元以来的毫秒数。
将日期查询在内部转换为这种长表示形式的范围查询,并且聚合和存储的字段的结果将转换为字符串,具体取决于与该字段关联的日期格式。
因此,如果您想保留yyyy-MM-dd格式,则必须将其存储为keyword
(这样您将无法对其进行范围查询)。
您可以将Kibana的显示更改为仅显示yyyy-MM-dd格式,但是请注意,它将日期转换为查看器的时区,这可能会导致与您在输入字段中输入的日期不同的日期。
如果要以字符串形式提取日期,则需要为相关索引创建映射,以防止默认日期处理。