设置数据流的生命周期编辑

为目标数据流配置数据流生命周期。

先决条件编辑

如果启用了 Elasticsearch 安全功能,则您必须具有 manage_data_stream_lifecycle 索引权限或更高级别权限才能使用此 API。有关更多信息,请参阅 安全权限

请求编辑

PUT _data_stream/<data-stream>/_lifecycle

描述编辑

为目标数据流配置数据流生命周期。如果提供了多个数据流,但其中至少有一个不存在,则所有数据流的生命周期更新都将失败,并且 API 将响应 404

路径参数编辑

<data-stream>
(必填,字符串)用于限制请求的数据流的逗号分隔列表。支持通配符 (*)。要定位所有数据流,请使用 *_all

查询参数编辑

expand_wildcards

(可选,字符串)通配符模式可以匹配的数据流类型。支持逗号分隔值,例如 open,hidden。有效值为

all, hidden
匹配任何数据流,包括 隐藏的 数据流。
open, closed
匹配任何非隐藏数据流。数据流不能关闭。
none
不接受通配符模式。

默认为 open

请求正文编辑

lifecycle

(必填,对象)

lifecycle 的属性
data_retention
(可选,字符串)如果定义,则添加到此数据流的每个文档都将至少存储此时间范围。在此期限后的任何时间都可以删除该文档。如果为空,则此数据流中的每个文档都将无限期存储。
enabled
(可选,布尔值)如果定义,则为该数据流打开/关闭 (true/false) 数据流生命周期。禁用的数据流生命周期 (enabled: false) 对数据流没有影响。默认为 true
downsampling
(可选,数组)一个可选的下采样配置对象数组,每个对象定义一个 after 间隔,表示何时对支持索引进行下采样(时间范围是从索引滚动后开始计算的,即生成时间)和一个 fixed_interval 表示下采样间隔(最小 fixed_interval 值为 5m)。最多可以配置 10 轮下采样。请参阅下面的 配置示例

示例编辑

以下示例设置 my-data-stream 的生命周期

response = client.indices.put_data_lifecycle(
  name: 'my-data-stream',
  body: {
    data_retention: '7d'
  }
)
puts response
PUT _data_stream/my-data-stream/_lifecycle
{
  "data_retention": "7d"
}

当所有数据流中的生命周期都成功更新后,您将收到以下结果

{
  "acknowledged": true
}

示例编辑

以下示例配置了两轮下采样,第一轮在下采样索引滚动后一天开始(或更晚,如果索引仍在其接受写入的 时间范围内) ,间隔为 10m,第二轮在滚动后 7 天开始,间隔为 1d

response = client.indices.put_data_lifecycle(
  name: 'my-weather-sensor-data-stream',
  body: {
    downsampling: [
      {
        after: '1d',
        fixed_interval: '10m'
      },
      {
        after: '7d',
        fixed_interval: '1d'
      }
    ]
  }
)
puts response
PUT _data_stream/my-weather-sensor-data-stream/_lifecycle
{
    "downsampling": [
      {
        "after": "1d",
        "fixed_interval": "10m"
      },
      {
        "after": "7d",
        "fixed_interval": "1d"
      }
    ]
}