ES的DSL查询,按照时间段分组统计之date_histogram

            <div id="content_views" class="htmledit_views">
                <h4><a name="t0"></a>1. 需求</h4> 

对于es保存的数据,需要根据其时间格式或时间戳格式的字段进行分组统计,计算每天或每小时的某字段统计值

2. 使用方式
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "status": "0"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 0,
  "sort": [],
  "aggs": {
    "dateAgg": {
      "date_histogram": {
        "field": "timestamp",
        "offset": "-8h",
        "format": "yyyy-MM-dd",
        "calendar_interval": "1d",
        "order": [
          {
            "timeSum": "desc"
          }
        ]
      },
      "aggs": {
        "timeSum": {
          "sum": {
            "field": "statusDurationSecond"
          }
        }
      }
    }
  }
}
3. 注意点
  • offset: -8h:是因为es默认是按照UTC的时间进行查询的,所以需要减掉8小时
  • calendar_interval:可选内容有
    
       
       
    1. 毫秒:1ms 10ms
    2. 秒: second/1s 10s
    3. 分钟: minute/1m 10m
    4. 小时: hout/1h 2h
    5. 天: day/ 1d
    6. 星期: week/1w
    7. 月: month/1M
    8. 季度: quarter/1q
    9. 年: year/1y

  •  "format": "yyyy-MM-dd":只有date类型可以format,这里分组字段如果是long类型时间戳,format的结果是下图格式,无意义
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Date Histogram是一个在Elasticsearch中使用的聚合方法,用于按照时间间隔对日期进行分组和计数。它类似于Histogram,但是支持日期表达式作为区间。 Date Histogram的用法相对于Histogram来说更加灵活,可以根据指定的日期表达式来对时间进行分组。例如,你可以将间隔(interval)指定为一个月,它会智能地知道2月比12月要短,并且还能根据时区进行定制,以便根据用户的时区来生成图形,而不是根据服务器的时区。 通常的Histogram桶也可以处理日期,但是它不具备自动识别日期并根据日期的特性进行处理的能力。而Date Histogram可以根据指定的时间间隔自动识别日期,并且能够合理地处理时区,这样就可以根据客户端的时区来进行图表的定制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [date_histogram](https://blog.csdn.net/opera95/article/details/78614244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [[Elasticsearch] 聚合 - 时间数据处理(Looking at Time)](https://blog.csdn.net/dm_vincent/article/details/42594043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值