获取汇总索引功能 API
编辑获取汇总索引功能 API
编辑在 8.11.0 中已弃用。
汇总功能将在未来的版本中移除。请改用降采样。
返回汇总索引(例如,存储汇总数据的索引)中所有作业的汇总功能。
请求
编辑GET <目标>/_rollup/data
描述
编辑单个汇总索引可以存储多个汇总作业的数据,并且根据这些作业可能具有不同的功能。
此 API 将允许您确定
- 哪些作业存储在索引中(或通过模式指定的索引)?
- 哪些目标索引被汇总,哪些字段在这些汇总中使用,以及可以在每个作业上执行哪些聚合?
路径参数
编辑-
<target>
- (必需,字符串)要检查汇总功能的数据流或索引。支持通配符(
*
)表达式。
示例
编辑假设我们有一个名为 sensor-1
的索引,其中包含原始数据。我们知道数据会随着时间的推移而增长,因此会有 sensor-2
、sensor-3
等。让我们创建一个汇总作业,将其数据存储在 sensor_rollup
中
resp = client.rollup.put_job( id="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" ] } ], ) print(resp)
const response = await client.rollup.putJob({ id: "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"], }, ], }); console.log(response);
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
resp = client.rollup.get_rollup_index_caps( index="sensor_rollup", ) print(resp)
response = client.rollup.get_rollup_index_caps( index: 'sensor_rollup' ) puts response
const response = await client.rollup.getRollupIndexCaps({ index: "sensor_rollup", }); console.log(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、保存汇总数据的索引、作业的目标索引模式。
接下来,它显示了一个包含符合汇总搜索条件的数据的字段列表。这里我们看到四个字段:node
、temperature
、timestamp
和 voltage
。这些字段中的每一个都列出了可能的聚合。例如,您可以在 temperature
字段上使用 min、max 或 sum 聚合,但在 timestamp
上只能使用 date_histogram
。
请注意,rollup_jobs
元素是一个数组;可以为单个索引或索引模式配置多个独立的作业。这些作业中的每一个都可能有不同的配置,因此 API 返回一个可用配置的列表。
像其他与索引交互的 API 一样,您可以指定索引模式而不是显式索引
resp = client.rollup.get_rollup_index_caps( index="*_rollup", ) print(resp)
response = client.rollup.get_rollup_index_caps( index: '*_rollup' ) puts response
const response = await client.rollup.getRollupIndexCaps({ index: "*_rollup", }); console.log(response);
GET /*_rollup/_rollup/data