通过Elasticsearch以特定粒度并发运行事件

时间:2019-04-04 14:55:49

标签: elasticsearch elasticsearch-aggregation

我的索引中有几百万个工作。作为属性,它们具有start_time,end_time和id。作业的运行时间是随机的。

[
    {id: 1, start_time: "2019-01-01 00:00:00" , end_time: "2019-01-01 01:00:00"},
    {id: 2, start_time: "2019-01-01 00:30:00" , end_time: "2019-01-01 01:30:00"},
    {id: 3, start_time: "2019-01-01 00:30:00" , end_time: "2019-01-01 02:00:00"},
    {id: 4, start_time: "2019-01-01 02:30:00" , end_time: "2019-01-01 03:00:00"},
]

我需要一种生成报告的方法,该报告显示指定粒度下正在运行的最大作业总数。

例如间隔30分钟,结果将如下所示:

"2019-01-01 00:00:00": 1
"2019-01-01 00:30:00": 3
"2019-01-01 01:00:00": 3
"2019-01-01 01:30:00": 1
"2019-01-01 02:00:00": 0
"2019-01-01 02:30:00": 1
"2019-01-01 03:00:00": 0

我似乎找不到任何方法可以在弹性搜索中聚合数据。我在这看错了吗?是否有更好的方法将此数据保存到索引?

0 个答案:

没有答案