设置数据流的生命周期
编辑设置数据流的生命周期
编辑先决条件
编辑如果启用了 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
的生命周期
resp = client.indices.put_data_lifecycle( name="my-data-stream", data_retention="7d", ) print(resp)
response = client.indices.put_data_lifecycle( name: 'my-data-stream', body: { data_retention: '7d' } ) puts response
const response = await client.indices.putDataLifecycle({ name: "my-data-stream", data_retention: "7d", }); console.log(response);
PUT _data_stream/my-data-stream/_lifecycle { "data_retention": "7d" }
当所有数据流的生命周期都成功更新时,您将收到以下结果
{ "acknowledged": true }
示例
编辑以下示例配置两轮降采样,第一轮从后备索引滚动后一天开始(或者如果索引仍在接受写入的时间范围内,则稍后开始),间隔为 10m
,第二轮从滚动后 7 天开始,间隔为 1d
resp = client.indices.put_data_lifecycle( name="my-weather-sensor-data-stream", downsampling=[ { "after": "1d", "fixed_interval": "10m" }, { "after": "7d", "fixed_interval": "1d" } ], ) print(resp)
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
const response = await client.indices.putDataLifecycle({ name: "my-weather-sensor-data-stream", downsampling: [ { after: "1d", fixed_interval: "10m", }, { after: "7d", fixed_interval: "1d", }, ], }); console.log(response);
PUT _data_stream/my-weather-sensor-data-stream/_lifecycle { "downsampling": [ { "after": "1d", "fixed_interval": "10m" }, { "after": "7d", "fixed_interval": "1d" } ] }