侧边栏壁纸
博主头像
qu@blog 博主等级

行动起来,活在当下

  • 累计撰写 10 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
elk

elk聚合索引

Administrator
2025-07-29 / 0 评论 / 1 点赞 / 4 阅读 / 0 字

聚合索引

当数据量比较大时,kinbana展板因数据量庞大导致加载失败。

为了解决这个问题,可是使用聚合索引去计算需要的数据,并存储到另外的索引中,这样新的索引中只包含了所需数据,查询数据量大大降低。

以下是将drm-cau索引中唯一requestId每天的数量进行统计,并将结果存储到drm-cau-daily-count3索引中,便于后续快速查询每日的请求唯一性指标。

Transform Job 配置

PUT _transform/drm-cau-daily-count3
{
  "source": {
    "index": "drm-cau",
    "query": {
      "range": {
        "@timestamp": {
          "gte": "now-30d/d"
        }
      }
    }
  },
  "dest": {
    "index": "drm-cau-daily-count3"
  },
  "pivot": {
    "group_by": {
      "date": {
        "date_histogram": {
          "field": "@timestamp",
          "calendar_interval": "1d",
          "time_zone": "+08:00"
        }
      }
    },
    "aggregations": {
      "unique_request_count": {
        "cardinality": {
          "field": "requestId.keyword",
          "precision_threshold": 40000
        }
      }
    }
  },
  "frequency": "1h",
  "sync": {
    "time": {
      "field": "@timestamp",
      "delay": "60s"
    }
  },
  "settings": {
    "max_page_search_size": 10000
  },
  "description": "Daily unique count of requestId in drm-cau index"
}

说明:

  • source.index:指定源索引为 drm-cau。
  • dest.index:目标索引为 drm-cau-daily-count3,存储聚合结果。
  • pivot.group_by:使用 date_histogram 按 @timestamp 字段以 1 天粒度分组。
  • aggregations:value_count 统计 requestId.keyword 的出现次数。
  • frequency:Job 每小时检查一次新数据,可根据需要调整(例如 5m 或 1d)。
  • sync.time:增量同步基于 @timestamp 字段,delay 确保数据写入后被处理。

启动

POST _transform/drm-cau-daily-count3/_start

查看状态

GET _transform/drm-cau-daily-count3/_stats

查询

GET drm-cau-daily-count3/_search
{
  "query": {
    "range": {
      "date": {
        "gte": "now-3d/d",
        "lte": "now/d"
      }
    }
  },
  "sort": [
    { "date": { "order": "asc" } }
  ],
  "script_fields": {
    "shanghai_date": {
      "script": {
        "source": "doc['date'].value.withZoneSameInstant(ZoneId.of('Asia/Shanghai')).toString()",
        "lang": "painless"
      }
    }
  },
  "fields": [
    { "field": "unique_request_count" }
  ],
  "size": 10
}
1

评论区