Bar*_*uri 3 datetime elasticsearch logstash elasticsearch-mapping logstash-jdbc
我正在尝试使用Logstash使用jdbc输入插件将MySQL数据库中的事件集保存到弹性搜索中。数据库中的事件记录包含微秒格式的日期字段。实际上,数据库中有几微秒之间的记录。
导入数据时,Elasticsearch会将微秒日期格式截断为毫秒格式。如何保存微秒格式的数据?elasticsearch文档说他们遵循JODA时间API来存储日期格式,该格式不支持微秒,并且在时间戳的末尾添加Z来截断。
截断后的示例时间戳记:2018-05-02T08:13:29.268Z
数据库中的原始时间戳记:2018-05-02T08:13:29.268482
这Z不是截断的结果,而是GMT时区。
如果您在映射中指定了正确的日期格式,ES也支持微秒。
如果映射中的日期字段是这样指定的:
"date": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按照数据库中的精确微秒精度为日期建立索引
更新
这是完整的重新创建,向您展示它的工作原理:
PUT myindex
{
"mappings": {
"doc": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
}
}
}
}
}
PUT myindex/doc/1
{
"date": "2018-05-02T08:13:29.268482"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3392 次 |
| 最近记录: |