首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ElasticSearch中以微秒格式保存数据

问在ElasticSearch中以微秒格式保存数据
EN

Stack Overflow用户
提问于 2018-05-02 08:28:26
回答 2查看 8.6K关注 0票数 5

我试图使用带有Logstash的jdbc输入插件将事件集从MySQL数据库保存到弹性搜索中。数据库中的事件记录包含以微秒格式的日期字段。实际上,数据库中有一组微秒之间的记录。

在导入数据时,Elasticsearch将微秒数据格式截断为毫秒格式。如何以微秒格式保存数据?elasticsearch文档表示,他们遵循JODA时间API来存储日期格式,这不支持微秒,而是通过在时间戳末尾添加一个Z来截断。

截断后的样本时间戳:2018-05-02T08:13:29.268Z

数据库中的原始时间戳:2018-05-02T08:13:29.268482

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-02 08:42:03

Z不是截断的结果,而是GMT时区的结果。

如果您在映射中指定了正确的日期格式,ES也支持微秒。

如果映射中的日期字段指定如下:

代码语言:javascript
复制
    "date": {
      "type": "date",
      "format": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
    }

然后,您就可以像在数据库中一样,用精确的微秒精度索引您的日期。

更新

下面是一个完整的再创造,它向您展示了它的工作原理:

代码语言:javascript
复制
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"
}
票数 10
EN

Stack Overflow用户

发布于 2019-06-21 09:27:34

附带注意,“日期”数据类型在elasticsearch中以毫秒为单位存储数据,因此在这里,如果在日期范围查询中需要纳秒精度级别,则适当的数据类型是纳氏

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50130208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档