【Elasticsearch】索引生命周期转换

在Elasticsearch中,索引生命周期管理(ILM)的生命周期转换是通过定义的生命周期策略(policy)自动触发的。这些策略定义了索引在不同阶段(如 hot 、 warm 、 cold 、 frozen 和 delete )的行为和触发条件\^0\^

索引生命周期转换的触发机制

  1. Rollover(滚动):当索引达到预设的大小、文档数量或年龄时,触发滚动操作,创建一个新的写入索引\^2\^。例如,在 hot 阶段,可以设置 max_age 为30天或 max_primary_shard_size 为50GB,当索引达到这些条件之一时,滚动操作会被触发\^3\^

  2. Phase Transition(阶段转换):索引在达到某个阶段的 min_age 后,会自动进入下一个阶段\^5\^。例如,索引在 hot 阶段滚动后,经过30天会进入 warm 阶段,此时可以执行压缩(shrink)或强制合并(forcemerge)操作\^6\^

  3. Delete(删除):当索引达到 delete 阶段的 min_age 时,索引会被永久删除\^8\^

如何设置触发条件通过ILM策略定义: 创建ILM策略时,需要明确指定每个阶段的触发条件和操作。

例如:json

PUT _ilm/policy/my_policy

{

"policy": {

"phases": {

"hot": {

"actions": {

"rollover": {

"max_age": "30d",

"max_primary_shard_size": "50GB"

}

}

},

"delete": {

"min_age": "90d",

"actions": {

"delete": {}

}

}

}

}

}

在这个策略中,索引在达到30天或50GB时会触发滚动操作,而在滚动后90天会被删除\^9\^

应用ILM策略到索引模板: 创建索引模板时,将ILM策略应用到模板中,确保新创建的索引自动使用该策略\^11\^

监控生命周期转换使用Elasticsearch的 _ilm/explain API可以查看索引的生命周期状态,包括当前阶段和正在执行的操作。

例如:

GET _ilm/explain

{

"index": "my_index-*"

}

这将返回索引的生命周期状态,帮助确认ILM策略是否按预期工作。

注意事项ILM策略中的 min_age 是相对于滚动时间而不是索引创建时间计算的\^12\^

所有集群节点必须运行相同版本的Elasticsearch,否则ILM策略可能无法正常工作\^13\^

通过这些机制,Elasticsearch的ILM能够自动管理索引的生命周期,确保数据在不同阶段的高效存储和管理。

相关推荐
Han.miracle13 小时前
Elasticsearch深度分页问题完整解析
大数据·elasticsearch·搜索引擎
深海鱼肝油ya13 小时前
向量数据库Elasticsearch(一)
人工智能·elasticsearch·向量数据库·es数据库增加索引·es数据库相似度查询·knn查询
大模型丫丫14 小时前
工业级 RAG 为什么需要 Elasticsearch?
elasticsearch·django·jenkins
Sayai21 小时前
Elasticsearch 9 安装验证实战:start-local 一键部署 + Docker 手动安装踩坑指南
大数据·elasticsearch·docker
瑞码空间1 天前
git知识点黄金笔记
笔记·git·elasticsearch
切糕师学AI1 天前
如何查看已合并到 master 分支的所有分支?Git 分支清理指南
大数据·git·elasticsearch
suaizai_1 天前
从1210条报错到全自动修复:AI闭环运维实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客2 天前
不再有分配延迟:在无状态 Elasticsearch 中将快照与分片迁移解耦
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索
Elasticsearch2 天前
在 ES|QL 中引入 SPARKLINE:一眼看清趋势
elasticsearch
Capricorn19882 天前
防编造架构实战:对比 Gemini Notebook 解析知芽 Notebook Skill 的工程实现
人工智能·笔记·elasticsearch·架构·知识图谱·论文笔记