2016-04-11 32 views
0

こんにちはElasticsearchの人々にelasticsearch複数の集約、時間間隔

私はelasticsearchに保存されている時系列データセット上の時間ベースのクエリを実行しようとしています。

誰かがこのようなことをするためにいくつかのトリックを共有しているのだろうかと思います... 基本的に、すべてのドキュメントにはUTC時間と値が付属しています。最終的には、過去12ヶ月間の1日の平均値を1時間ごとに調べる必要があります。

私の現在のアプローチはちょっとハックされた - 私は時間ごとにデータを格納し、また、一日の時間としてフィールドを格納し、すなわち1 PM UTCは13である。しかし、それはそうハックされ、問題のシリーズが付属しています: 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

関連する問題