You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kibana Vega如何通过单次Elasticsearch聚合请求实现多图层数据绑定

配置实现方案

要实现单请求下两个图层分别读取不同聚合路径的数据,你需要取消顶层数据的固定根路径绑定,再分别为两个图层配置独立的数据转换规则,修改后的完整代码如下:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v2.json",
  "title": "Hat Sales",
  "data": {
    "url": {
      "index": "hat-sales",
      "body": {
        "size": 0,
        "query": {"match_all": {}},
        "aggs": {
          "stores": {"terms": {"field": "store.keyword", "size": 3}},
          "global": {
            "filters": {
              "filters": {"all": {"exists": {"field": "store.keyword"}}}
            },
            "aggs": {
              "count": {"value_count": {"field": "store.keyword"}},
              "unique_count": {"cardinality": {"field": "store.keyword"}},
              "global_average": {
                "bucket_script": {
                  "buckets_path": {"total": "count", "unique": "unique_count"},
                  "script": "params.total / params.unique"
                }
              }
            }
          }
        }
      }
    }
  },
  "layer": [
    {
      "name": "Sales of top 3 stores",
      "mark": "bar",
      "transform": [
        {"flatten": ["aggregations.stores.buckets"]},
        {"calculate": "datum.aggregations.stores.buckets.key", "as": "store"},
        {"calculate": "datum.aggregations.stores.buckets.doc_count", "as": "count"}
      ],
      "encoding": {
        "x": {"type": "nominal", "field": "store", "sort": "-y"},
        "y": {"type": "quantitative", "field": "count"}
      }
    },
    {
      "name": "Average number of sales over all stores",
      "mark": {"type": "rule", "color": "red"},
      "transform": [
        {"calculate": "datum.aggregations.global.buckets.all.global_average", "as": "global_avg"}
      ],
      "encoding": {
        "y": {"type": "quantitative", "field": "global_avg"}
      }
    }
  ]
}

关键调整说明

  • 移除了顶层data.format.property配置,不再固定数据根路径为门店分桶结果,保证可以访问到单次请求返回的所有聚合数据,全程仅发起1次ES查询,性能最优
  • 将原本顶层的字段转换逻辑迁移到柱状图层内部,新增flatten转换展开Top3门店的分桶数组,提取门店名称和销量字段
  • 参考线图层新增独立转换规则,直接从全局聚合路径中提取全门店平均销量值,绑定到y轴即可自动生成横跨全图的红色水平参考线

内容的提问来源于stack exchange,提问作者Sean Letendre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:36:05