数据流生命周期
编辑数据流生命周期编辑
数据流生命周期是数据流用于管理其生命周期的内置机制。它使您能够根据保留要求轻松自动化数据流的管理。例如,您可以配置生命周期以
- 确保索引到数据流中的数据至少保留您定义的保留时间。
- 确保 Elasticsearch 在以后自动删除超过保留期限的数据。
为了实现这一点,它支持
- 自动滚动,它将传入数据分成更小的块,以促进更好的性能和向后不兼容的映射更改。
- 可配置的保留,允许您配置保证存储数据的期限。Elasticsearch 允许在以后删除超过此期限的数据。
数据流生命周期还支持对数据流后备索引进行降采样。有关更多详细信息,请参阅降采样示例。
它是如何工作的?编辑
在由data_streams.lifecycle.poll_interval
配置的间隔内,Elasticsearch 会遍历每个数据流并执行以下步骤
- 检查数据流是否配置了数据流生命周期,跳过不属于托管数据流的任何索引。
- 如果数据流的写入索引满足
cluster.lifecycle.default.rollover
定义的条件,则滚动该索引。 - 在索引不再是写入索引之后(即数据流已滚动),自动尾部合并索引。数据流生命周期执行合并操作,该操作仅针对小段的长尾,而不是整个分片。由于段被组织成指数大小的层级,因此合并小段的长尾只是强制合并到单个段的成本的一小部分。小段通常包含最新的数据,因此尾部合并会将合并资源集中在最有可能继续被查询的高价值数据上。
- 如果配置了降采样,它将执行所有配置的降采样轮次。
- 将保留应用于剩余的后备索引。这意味着删除
generation_time
长于配置的保留期的后备索引。generation_time
仅适用于已滚动的后备索引,它是自后备索引滚动以来的时间,或者是在index.lifecycle.origination_date
设置中可选配置的时间。
我们使用generation_time
而不是创建时间,因为这可以确保后备索引中的所有数据都已超过保留期。因此,保留期不是数据被删除的确切时间,而是数据将被存储的最短时间。
步骤2-4
仅适用于尚未由 ILM 管理的后备索引,这意味着这些索引要么没有定义 ILM 策略,要么如果定义了,则将index.lifecycle.prefer_ilm
设置为false
。
配置数据流生命周期编辑
由于生命周期是在数据流级别配置的,因此在新数据流和现有数据流上配置生命周期的过程有所不同。
在以下部分中,我们将介绍以下教程
- 要使用生命周期创建新的数据流,您需要将数据流生命周期添加为匹配数据流名称的索引模板的一部分(请参阅教程:使用生命周期创建数据流)。当具有数据流名称的写入操作到达 Elasticsearch 时,将使用相应的数据流生命周期创建数据流。
- 要更新现有数据流的生命周期,您需要使用数据流生命周期 API 来编辑数据流本身的生命周期(请参阅教程:更新现有数据流)。
- 使用教程:将 ILM 管理的数据流迁移到数据流生命周期将现有的 ILM 管理的数据流迁移到数据流生命周期。
更新现有数据流的数据流生命周期与更新设置或映射不同,因为它应用于数据流级别,而不是应用于各个后备索引。