获取汇总索引功能 API编辑

已在 8.11.0 中弃用。

汇总将在未来版本中移除。请改用降采样

返回汇总索引(例如,存储汇总数据的索引)中所有作业的汇总功能。

请求编辑

GET <target>/_rollup/data

先决条件编辑

  • 如果启用了 Elasticsearch 安全功能,您必须在存储汇总结果的索引上拥有readview_index_metadatamanage 索引权限中的任何一个。有关更多信息,请参阅安全权限

描述编辑

单个汇总索引可以存储多个汇总作业的数据,并且根据这些作业可能具有各种功能。

此 API 将允许您确定

  1. 索引(或通过模式指定的索引)中存储了哪些作业?
  2. 汇总了哪些目标索引、在这些汇总中使用了哪些字段以及可以对每个作业执行哪些聚合?

路径参数编辑

<target>
(必填,字符串)要检查汇总功能的数据流或索引。支持通配符 (*) 表达式。

示例编辑

假设我们有一个名为 sensor-1 的索引,其中充满了原始数据。我们知道数据会随着时间的推移而增长,因此会有 sensor-2sensor-3 等等。让我们创建一个汇总作业,将其数据存储在 sensor_rollup

PUT _rollup/job/sensor
{
  "index_pattern": "sensor-*",
  "rollup_index": "sensor_rollup",
  "cron": "*/30 * * * * ?",
  "page_size": 1000,
  "groups": {
    "date_histogram": {
      "field": "timestamp",
      "fixed_interval": "1h",
      "delay": "7d"
    },
    "terms": {
      "fields": [ "node" ]
    }
  },
  "metrics": [
    {
      "field": "temperature",
      "metrics": [ "min", "max", "sum" ]
    },
    {
      "field": "voltage",
      "metrics": [ "avg" ]
    }
  ]
}

如果在以后的日期,我们想确定 sensor_rollup 索引中存储了哪些作业和功能,我们可以使用获取汇总索引 API

response = client.rollup.get_rollup_index_caps(
  index: 'sensor_rollup'
)
puts response
GET /sensor_rollup/_rollup/data

请注意,我们将具体的汇总索引名称 (sensor_rollup) 作为 URL 的第一部分进行请求。这将产生以下响应

{
  "sensor_rollup" : {
    "rollup_jobs" : [
      {
        "job_id" : "sensor",
        "rollup_index" : "sensor_rollup",
        "index_pattern" : "sensor-*",
        "fields" : {
          "node" : [
            {
              "agg" : "terms"
            }
          ],
          "temperature" : [
            {
              "agg" : "min"
            },
            {
              "agg" : "max"
            },
            {
              "agg" : "sum"
            }
          ],
          "timestamp" : [
            {
              "agg" : "date_histogram",
              "time_zone" : "UTC",
              "fixed_interval" : "1h",
              "delay": "7d"
            }
          ],
          "voltage" : [
            {
              "agg" : "avg"
            }
          ]
        }
      }
    ]
  }
}

返回的响应包含的信息类似于原始汇总配置,但格式不同。首先,有一些内部细节:汇总作业 ID、保存汇总数据的索引、作业所针对的索引模式。

接下来,它显示了包含符合汇总搜索条件的数据的字段列表。这里我们看到四个字段:nodetemperaturetimestampvoltage。这些字段中的每一个都列出了可能的聚合。例如,您可以对 temperature 字段使用最小值、最大值或总和聚合,但只能对 timestamp 使用 date_histogram

请注意,rollup_jobs 元素是一个数组;可以为单个索引或索引模式配置多个独立的作业。这些作业中的每一个都可能有不同的配置,因此 API 会返回所有可用配置的列表。

与其他与索引交互的 API 一样,您可以指定索引模式而不是显式索引

response = client.rollup.get_rollup_index_caps(
  index: '*_rollup'
)
puts response
GET /*_rollup/_rollup/data