【问题标题】:ElasticSearch index unix timestampElasticSearch 索引 unix 时间戳
【发布时间】:2015-10-16 16:05:53
【问题描述】:

我必须索引包含“时间”字段的文档,该字段的值是一个整数,表示自纪元以来的秒数(又名 unix 时间戳)。

我一直在阅读 ES 文档并发现了这个:

http://www.elasticsearch.org/guide/reference/mapping/date-format.html

但是,如果我想提交 unix 时间戳并将它们存储在“日期”字段中(整数字段对我没有用),我只有两个选择:

  • 实现我自己的日期格式
  • 在发件人处转换为支持的格式

还有其他我错过的选择吗?

谢谢!

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    如果你提供一个映射告诉 ES 该字段是一个日期,它可以使用 epoch millis 作为输入。如果您希望 ES 自动检测,则必须提供 ISO8601 或其他可发现的格式。

    更新:我还应该注意,您可以影响 ES 将哪些字符串识别为映射中的日期。 http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html

    【讨论】:

    • 好的,我认为问题在于我发送的是秒而不是毫秒。会尝试并回来。谢谢!
    • 为了将来参考,为了让 ES 接受这些,我可以简单地使用: "timestamp" : {"type" : "date"} 这在我的索引中创建了一个具有格式的映射日期可选时间。然后我可以将这些时间戳与 kibana 3 timepicker 一起使用来制作图表。
    • 该评论值得拥有自己的答案,以便更明显。
    【解决方案2】:

    如果您想使用我期望的 Kibana,并根据日志/条目的时间进行可视化,您将需要至少一个字段作为日期字段。

    请注意,在将任何数据输入 /index/type 之前,您必须将该字段设置为日期类型。否则它将被长期存储且不可更改。

    可以粘贴到marvel/sense插件中的简单示例:

    # Make sure the index isn't there
    DELETE /logger
    
    # Create the index
    PUT /logger
    
    # Add the mapping of properties to the document type `mem`
    PUT /logger/_mapping/mem
    {
      "mem": {
        "properties": {
          "timestamp": {
            "type": "date"
          },
          "free": {
             "type": "long"
          }
        }
      }
    }
    
    # Inspect the newly created mapping
    GET /logger/_mapping/mem
    

    依次运行这些命令。

    生成免费的内存日志

    这是一个简单的脚本,它会回显到您的终端并记录到您的本地 elasticsearch:

    while (( 1==1 )); do memfree=`free -b|tail -n 1|tr -s ' ' ' '|cut -d ' ' -f4`; echo $load; curl -XPOST "localhost:9200/logger/mem" -d "{ \"timestamp\": `date +%s%3N`, \"free\": $memfree }"; sleep 1; done
    

    在弹性搜索中检查数据

    将此粘贴​​到您的奇迹/感觉中

    GET /logger/mem/_search
    

    现在您可以转移到 Kibana 并制作一些图表。 Kibana 将自动检测您的日期字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 2013-03-23
      • 2021-02-12
      • 1970-01-01
      相关资源
      最近更新 更多