首页/数据/NoSQL 速查/管道聚合:对聚合结果再计算
Elasticsearch89 条

管道聚合:对聚合结果再计算

管道聚合不产生新桶,而是对已有桶结果做二次计算:derivative 求差分、cumulative_sum 累计求和、bucket_script 做桶内指标算术。

NoSQL 速查数据更新于 2026-10-12
常见类型derivative / cumulative_sum / moving_fn / bucket_script / bucket_sort
连接方式buckets_path 指向同层或上级的聚合名称
缺口处理gap_policy 可选 skip 或 insert_zeros

示例

示例
GET /sales/_search
{
  "size": 0,
  "aggs": {
    "per_month": {
      "date_histogram": { "field": "date", "calendar_interval": "month" },
      "aggs": {
        "sales": { "sum": { "field": "amount" } },
        "sales_diff": { "derivative": { "buckets_path": "sales" } }
      }
    }
  }
}
buckets_path 用 > 表示跨层级,如 "agg1>agg2";写错路径会直接报无法解析的聚合名称。

易错点

  • 管道聚合作用于父级结果,嵌套过深时路径容易写错,先跑简单版确认层级再叠加
  • derivative 的首个桶永远没有前值,返回空是正常行为

数据来源与参考

  • Elasticsearch Guide: Pipeline aggregations
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌