zoukankan      html  css  js  c++  java
  • Elasticsearch聚合 之 Date Histogram聚合

    Elasticsearch的聚合主要分成两大类:metric和bucket,2.0中新增了pipeline还没有研究。本篇还是来介绍Bucket聚合中的常用聚合——date histogram.参考:官方文档

    用法

    Date histogram的用法与histogram差不多,只不过区间上支持了日期的表达式。

    {
    "aggs":{
        "articles_over_time":{
            "date_histogram":{
                "field":"date",
                "interval":"month"
                }
            }
        }
    }
    

    interval字段支持多种关键字:`year`, `quarter`, `month`, `week`, `day`, `hour`, `minute`, `second`

    当然也支持对这些关键字进行扩展使用,比如一个半小时可以定义成如下: ``` { "aggs":{ "articles_over_time":{ "date_histogram":{ "field":"date", "interval":"1.5h" } } } } ``` 返回的结果可以通过设置format进行格式化: ``` { "aggs":{ "articles_over_time":{ "date_histogram":{ "field":"date", "interval":"1M", "format":"yyyy-MM-dd" } } } } ``` 得到的结果如下: ``` { "aggregations":{ "articles_over_time":{ "buckets":[{ "key_as_string":"2013-02-02", "key":1328140800000, "doc_count":1 },{ "key_as_string":"2013-03-02", "key":1330646400000, "doc_count":2 }, ... ]} } } ``` 其中key_as_string是格式化后的日期,key显示了是日期时间戳, ## time_zone时区的用法 在es中日期支持时区的表示方法,这样就相当于东八区的时间。 ``` { "aggs":{ "by_day":{ "date_histogram":{ "field":"date", "interval":"day", "time_zone":"+08:00" } } } } ``` ## offset 使用偏移值,改变时间区间 默认情况是从凌晨0点到午夜24:00,如果想改变时间区间,可以通过下面的方式,设置偏移值: ``` {"aggs":{ "by_day":{ "date_histogram":{ "field":"date", "interval":"day", "offset":"+6h" } } } } ``` 那么桶的区间就改变为: ``` "aggregations":{ "by_day":{ "buckets":[{ "key_as_string":"2015-09-30T06:00:00.000Z", "key":1443592800000, "doc_count":1 },{ "key_as_string":"2015-10-01T06:00:00.000Z", "key":1443679200000, "doc_count":1 }] } } ``` ## Missing Value缺省字段 当遇到没有值的字段,就会按照缺省字段missing value来计算: ``` { "aggs":{ "publish_date":{ "date_histogram":{ "field":"publish_date", "interval":"year", "missing":"2000-01-01" } } } } ``` ## 其他 对于其他的一些用法,这里就不过多赘述了,比如脚本、Order、min_doc_count过滤,extended_bounds等都是支持的。
  • 相关阅读:
    zabbix系列(七)zabbix3.0添加对tcp连接数及状态的监控
    zabbix系列(六)zabbix添加对ubuntu系统的监控
    zabbix系列(六)zabbix添加对ubuntu系统的监控
    centos命令行变成了-bash-4.1$的解决办法
    zabbix常见报错问题处理
    sqlyog通过跳板机ssh连接mysql数据库
    centos系统初始化脚本
    修改centos和ubuntu ssh远程连接端口提升系统安全性
    listener failed: zbx_tcp_listen() fatal error: unable to serve on any address [[-]:20050]
    zabbix系列(五)zabbix3.0.4 探索主机Discovery自动发现主机详细图文教程
  • 原文地址:https://www.cnblogs.com/xing901022/p/4951603.html
Copyright © 2011-2022 走看看