首页 > 解决方案 > 将字段编号转换为 kibana 上的日期,弹性搜索

问题描述

我通过 Kibana 在 Elasticsearch 上有一个字段编号。

这是一个示例字段:

"insert.datePeticio:1,546,185,770,733"

为了可视化目的,我需要将此字段转换为日期。

如何将其解析为日期模式?

标签: elasticsearchkibana

解决方案


据我了解,您在 Elasticsearch 上有一个整数字段,它以自纪元以​​来的毫秒数存储日期/时间。您想将其转换为适当的日期类型以在 Kibana 上正确显示。在这种情况下,我会推荐两种解决方案:

1)如果您能够定义映射,请使用以下insert.datePeticio字段:

"mappings": {
  "_doc": {
    "properties": {
      "insert.datePeticio": {
        "format": "epoch_millis",
        "type": "date"
      }
    }
  }
}

这允许 Kibana 将insert.datePeticio字段定义和表示为日期,即使实际值以毫秒为单位存储为 Elasticsearch 上的整数。

2)如果没有,那么无法对原始映射做任何更改,在 Kibana 上创建一个脚本字段,如下所示:

  • 转到管理 > 索引模式
  • 选择要修改的索引模式
  • 选择索引模式的脚本字段选项卡
  • 单击添加脚本字段
  • 参考下图填写表格,然后保存。

如何创建脚本字段

如果您转到Kibana > Discover,您可以看到两个字段以不同的表示形式和类型一起显示:insert.datePeticio: 1,546,185,770,733insert.datePeticio_UTC:December 30th 2018, 16:02:50.733。由于是日期类型,因此脚本化字段insert.datePeticio_UTC可轻松用于基于日期聚合创建可视化。

注意:脚本字段根据您的 Elasticsearch 索引中的数据动态计算数据。请记住,使用脚本字段动态计算数据可能会占用大量资源,并且会对 Kibana 的性能产生直接影响。


推荐阅读