获取 rollup 索引能力 API
已弃用
在 8.11.0 中已弃用。
Rollup 将在未来版本中移除。请改用降采样。
返回 rollup 索引(即存储 rollup 数据的索引)内所有作业的 rollup 能力。单个 rollup 索引可能存储多个 rollup 作业的数据,并且根据这些作业的不同可能具有多种能力。
此 API 使你能够确定:
- 一个索引(或通过模式指定的多个索引)中存储了哪些作业
- 哪些目标索引被 rollup 了、这些 rollup 中使用了哪些字段,以及可以对每个作业执行哪些聚合
GET <target>/_rollup/data
前置条件
- 如果启用了 Elasticsearch 安全功能,你必须对存储 rollup 结果的索引具有读取、查看索引元数据或管理索引权限。
路径参数
<target>
(必需,字符串)要检查 rollup 能力的数据流或索引。支持通配符(*)表达式。
示例
步骤 1:创建示例 rollup 作业
假设有一个名为 sensor-1 的索引,其中装满原始数据(数据会增长为 sensor-2、sensor-3 等)。创建一个将数据存储在 sensor_rollup 中的 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" ]
}
]
}
步骤 2:查询 rollup 索引能力
GET /sensor_rollup/_rollup/data
请注意,具体的 rollup 索引名称(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"
}
]
}
}
]
}
}
响应解读:
调度细节:rollup 作业 ID(
sensor)、保存 rollup 后数据的索引(sensor_rollup),以及作业目标的索引模式(sensor-*)。可用于 rollup 搜索的字段:列出了四个字段 —
node、temperature、timestamp和voltage— 每个字段都有其可用的聚合。例如,temperature支持min、max或sum聚合,而timestamp仅支持date_histogram。rollup_jobs元素是一个数组:可以为单个索引或索引模式配置多个独立的作业,每个作业可能有不同的配置,因此 API 返回所有可用配置的列表。
使用索引模式
与其他与索引交互的 API 一样,可以指定索引模式而非明确的索引:
GET /*_rollup/_rollup/data