2016-04-11 55 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