elasticsearch在时间间隔上的多重聚合

时间:2016-04-11 15:46:15

标签: elasticsearch

你好Elasticsearch的人,

我正在尝试对存储在elasticsearch中的时间序列数据集执行基于时间的查询。

我想知道是否有人会分享一些技巧来做这样的事情...... 基本上,每个文档都带有UTC时间和值。最后,我想找出过去12个月中每天每小时的平均值。

我目前的方法有点笨拙 - 我按小时存储数据,并且还存储一个字段作为一天中的小时,即下午1点UTC是13.但它是如此hacky并伴随着一系列问题: 1.您可能已经注意到它没有夏令时调整。 我有点必须将当天的UTC时间转换回当地时间。 3.许多其他问题......

非常感谢您的帮助!

莱昂

1 个答案:

答案 0 :(得分:0)

这样的事情可以在没有任何黑客的情况下为你提供所需的东西:

{
  "query": {},
  "aggs": {
    "hourOfDay": {
      "histogram": {
        "script": "doc['timestamp'].date.getHourOfDay()",
        "interval": 1,
        "min_doc_count": 0,
        "extended_bounds": {
          "min": 0,
          "max": 23
        },
        "order": {
          "_key": "desc"
        }
      }
    }
  }
}