栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch 7.X-8.0 AggregationBuliders 相关聚合函数(一)计数指标-百分位数

Elasticsearch 7.X-8.0 AggregationBuliders 相关聚合函数(一)计数指标-百分位数

percentiles 百分位聚合

‎百分位数显示出现一定百分比的观测值的点。

默认统计的百分位数为:[ 1, 5, 25, 50, 75, 95, 99 ]

请求示例:
GET latency/_search
{
  "size": 0,
  "aggs": {
    "load_time_outlier": {
      "percentiles": {
        "field": "load_time" 
      }
    }
  }
}
返回:
{
  ...

 "aggregations": {
    "load_time_outlier": {
      "values": {
        "1.0": 5.0,
        "5.0": 25.0,
        "25.0": 165.0,
        "50.0": 445.0,
        "75.0": 725.0,
        "95.0": 945.0,
        "99.0": 985.0
      }
    }
  }
}
 

查询统计加载时间load_time的百分位数情况,可知50%情况为445毫秒,比445毫秒快的不到50%,其余都是比445毫秒慢的,75%,95%,99%类似;

percentileRanks 百分位数排名

‎百分位数排名显示低于特定值的观测值的百分比。例如,如果某个值大于或等于观测值的 95%,则称为第 95 百分位排名。‎

‎假设您的数据由网站加载时间组成。您可能有一个服务协议,即95%的页面加载在500毫秒内完成,99%的页面加载在600毫秒内完成。‎

请求示例:

GET latency/_search
{
  "size": 0,
  "aggs": {
    "load_time_ranks": {
      "percentile_ranks": {
        "field": "load_time",   
        "values": [ 500, 600 ]
      }
    }
  }
}

统计加载时间为500,600的百分排名情况;

返回:

{
  ...

 "aggregations": {
    "load_time_ranks": {
      "values": {
        "500.0": 90.01,
        "600.0": 100.0
      }
    }
  }
}

可知,500毫秒的占比为90.01%,600毫秒的为100%‎

根据此信息,您可以确定您正在达到 99% 的加载时间目标,但未完全达到 95% 的加载时间目标‎

medianAbsoluteDeviation 中位数绝对偏差

应用于数值类字段‎

‎中位数绝对偏差是可变性的度量。它是一个可靠的统计量,这意味着它可用于描述可能具有异常值或可能不正态分布的数据。对于此类数据,它可以比标准偏差更具描述性。‎

假设我们的数据以一到五星的比例表示产品评论。此类评论通常被总结为平均值,这很容易理解,但并不描述评论的可变性。估计中位数绝对偏差可以深入了解评论之间的差异。‎

‎在此示例中,我们有一个平均评级为 3 星的产品。让我们看一下其评级的绝对偏差中位数,以确定它们之间的差异有多大‎

请求示例:

GET reviews/_search
{
  "size": 0,
  "aggs": {
    "review_average": {
      "avg": {
        "field": "rating"
      }
    },
    "review_variability": {
      "median_absolute_deviation": {
        "field": "rating" 
      }
    }
  }
}

返回:

{
  ...
  "aggregations": {
    "review_average": {
      "value": 3.0
    },
    "review_variability": {
      "value": 2.0
    }
  }
}

可知中位数为3.0,即评价的中位数为三星,而可变性为2,与中位数相差不多,说明此评价的可变性大;

cardinality 基数聚合

‎计算非重复值的近似计数的指标聚合类似去重请求示例:

POST /sales/_search?size=0
{
  "aggs": {
    "type_count": {
      "cardinality": {
        "field": "type"
      }
    }
  }
}

返回:

{
  ...
  "aggregations": {
    "type_count": {
      "value": 3
    }
  }
}

可知,不同的商品种类有3种;

topHits 点滴聚合

‎指标聚合器跟踪要聚合的最相关的文档。此聚合器旨在用作子聚合器,以便可以聚合每个存储桶中匹配的顶级文档。‎不推荐用作最外层聚合支持nested嵌套聚合和reverse_nested反向嵌套聚合聚合后,每一个聚合Bucket里面仅返回指定顺序的前N条数据。应用场景:

统计每个班级中的期末成绩总分最高的两个人,我们可以先按班级聚合,再应用top_hits统计按总分排序详细参照:官网 scriptedMetric 脚本度量聚合

应用script脚本,自定义聚合条件,高度自制请求示例:

POST ledger/_search?size=0
{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "profit": {
      "scripted_metric": {
        "init_script": "state.transactions = []", 
        "map_script": "state.transactions.add(doc.type.value == 'sale' ? doc.amount.value : -1 * doc.amount.value)",
        "combine_script": "double profit = 0; for (t in state.transactions) { profit += t } return profit",
        "reduce_script": "double profit = 0; for (a in states) { profit += a } return profit"
      }
    }
  }
}

返回:

{
  "took": 218,
  ...
  "aggregations": {
    "profit": {
      "value": 240.0
    }
  }
}

‎上面的聚合演示了如何使用脚本聚合计算销售和成本交易的总利润。‎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/746375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号