2016-04-11 53 views
0

Hello Elasticsearch伙计elasticsearch在时间间隔上进行多次聚合

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

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

我目前的做法是有点hacky - 我存储数据在小时的基础上,也存储一个小时的一天,即下午1点UTC是13。但它是如此hacky并带有一系列问题: 1它没有夏令时调节,因为您可能已经注意到了。 2.我必须将当天UTC时间转换回当地时间。 3.很多其他问题....

非常感谢您的帮助提前!

莱昂

回答

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" 
     } 
     } 
    } 
    } 
} 
+0

谢谢@Or。 如果动态脚本不可用,该怎么办?另外,我可能需要在聚合完成之前进行时区转换。 – LeonJustCurious