索引汇总 API
使用索引汇总操作以编程方式处理索引汇总作业。
创建或更新索引汇总作业,必须提供 seq_no 和 primary_term 参数。
请求
PUT _plugins/_rollup/jobs/<rollup_id> // 创建
PUT _plugins/_rollup/jobs/<rollup_id>?if_seq_no=1&if_primary_term=1 // 更新
{
"rollup": {
"source_index": "nyc-taxi-data",
"target_index": "rollup-nyc-taxi-data",
"schedule": {
"interval": {
"period": 1,
"unit": "Days"
}
},
"description": "示例汇总作业",
"enabled": true,
"page_size": 200,
"delay": 0,
"roles": [
"rollup_all",
"nyc_taxi_all",
"example_rollup_index_all"
],
"continuous": false,
"dimensions": [
{
"date_histogram": {
"source_field": "tpep_pickup_datetime",
"fixed_interval": "1h",
"timezone": "America/Los_Angeles"
}
},
{
"terms": {
"source_field": "PULocationID"
}
}
],
"metrics": [
{
"source_field": "passenger_count",
"metrics": [
{
"avg": {}
},
{
"sum": {}
},
{
"max": {}
},
{
"min": {}
},
{
"value_count": {}
}
]
}
]
}
}
你可以指定以下选项。
| 选项 | 描述 | 类型 | 必需 |
|---|---|---|---|
source_index |
检测器的名称。 | 字符串 | 是 |
target_index |
指定汇总数据摄取到的目标索引。你可以创建新的目标索引或使用现有索引。目标索引不能是原始数据和汇总数据的组合。此字段支持动态生成的索引名称,如 rollup_{{ctx.source_index}},其中 source_index 不能包含通配符。 |
字符串 | 是 |
schedule |
索引汇总作业的计划,可以是间隔或 cron 表达式。 | 对象 | 是 |
schedule.interval |
指定汇总作业的执行频率。 | 对象 | 否 |
schedule.interval.start_time |
间隔的开始时间。 | 时间戳 | 是 |
schedule.interval.period |
定义间隔周期。 | 字符串 | 是 |
schedule.interval.unit |
指定间隔的时间单位。 | 字符串 | 是 |
schedule.interval.cron |
(可选)指定 cron 表达式以定义汇总频率。 | 列表 | 否 |
schedule.interval.cron.expression |
指定 Unix cron 表达式。 | 字符串 | 是 |
schedule.interval.cron.timezone |
指定 IANA 时区数据库定义的时区。默认为 UTC。 | 字符串 | 否 |
description |
(可选)描述汇总作业。 | 字符串 | 否 |
enabled |
当为 true 时,索引汇总作业被调度。默认值为 true。 |
布尔值 | 是 |
continuous |
指定索引汇总作业是连续汇总数据永远执行,还是在当前数据集上执行一次后停止。默认值为 false。 |
布尔值 | 是 |
error_notification |
设置错误通知的 Mustache 消息模板。例如,如果索引汇总作业失败,系统会向 Slack 频道发送消息。 | 对象 | 否 |
page_size |
指定在汇总期间分页的存储桶数量。 | 数字 | 是 |
delay |
索引汇总作业执行延迟的毫秒数。 | 长整数 | 否 |
dimensions |
指定聚合以创建汇总时间窗口的维度。支持的分组有 terms、histogram 和 date_histogram。有关更多信息,请参见 存储桶聚合。 |
数组 | 是 |
metrics |
指定代表要计算的字段和指标的列表。支持的指标有 sum、max、min、value_count 和 avg。有关更多信息,请参见 指标聚合。 |
数组 | 否 |
示例响应
{
"_id": "<rollup_id>",
"_version": 3,
"_seq_no": 1,
"_primary_term": 1,
"rollup": {
"rollup_id": "<rollup_id>",
"enabled": true,
"schedule": {
"interval": {
"start_time": 1680159934649,
"period": 1,
"unit": "Days",
"schedule_delay": 0
}
},
"last_updated_time": 1680159934649,
"enabled_time": 1680159934649,
"description": "示例汇总作业",
"schema_version": 17,
"source_index": "nyc-taxi-data",
"target_index": "rollup-nyc-taxi-data",
"metadata_id": null,
"page_size": 200,
"delay": 0,
"continuous": false,
"dimensions": [
{
"date_histogram": {
"fixed_interval": "1h",
"source_field": "tpep_pickup_datetime",
"target_field": "tpep_pickup_datetime",
"timezone": "America/Los_Angeles"
}
},
{
"terms": {
"source_field": "PULocationID",
"target_field": "PULocationID"
}
}
],
"metrics": [
{
"source_field": "passenger_count",
"metrics": [
{
"avg": {}
},
{
"sum": {}
},
{
"max": {}
},
{
"min": {}
},
{
"value_count": {}
}
]
}
]
}
}
获取索引汇总作业
根据 rollup_id 返回索引汇总作业的所有信息。
请求
GET _plugins/_rollup/jobs/<rollup_id>
示例响应
{
"_id": "my_rollup",
"_seqNo": 1,
"_primaryTerm": 1,
"rollup": { ... }
}
删除索引汇总作业
根据 rollup_id 删除索引汇总作业。
请求
DELETE _plugins/_rollup/jobs/<rollup_id>
示例响应
200 OK
启动或停止索引汇总作业
1.0 中引入
启动或停止索引汇总作业。
请求
POST _plugins/_rollup/jobs/<rollup_id>/_start
POST _plugins/_rollup/jobs/<rollup_id>/_stop
示例响应
200 OK
解释索引汇总作业
1.0 中引入
返回索引汇总作业的详细元数据信息及其当前进度。
请求
GET _plugins/_rollup/jobs/<rollup_id>/_explain
示例响应
{
"example_rollup": {
"rollup_id": "example_rollup",
"last_updated_time": 1602014281,
"continuous": {
"next_window_start_time": 1602055591,
"next_window_end_time": 1602075591
},
"status": "running",
"failure_reason": null,
"stats": {
"pages_processed": 342,
"documents_processed": 489359,
"rollups_indexed": 3420,
"index_time_in_ms": 30495,
"search_time_in_ms": 584922
}
}
}