elasticsearch: 7.4.2
ElasticSearch在 6.7 版本推出的索引生命周期管理(index lifecycle management,简称ILM),生命周期把索引分为四个阶段,Hot,Warm,Cold,和 Delete。这也是 Elastic 目前官方比较推荐的索引管理方法。
hot | 索引可写入,也可查询,也就是我们通常说的热数据。 |
warm | 索引通常不会被写入,但仍然会被查询。 |
cold | 索引不再被更新,并且很少被查询。这些信息仍然需要可搜索,但如果查询速度较慢也没关系。 |
delete | 索引不再需要,可以安全地删除。 |
策略不需要为索引配置每个阶段,只有 hot 是必须的。例如,一个策略可能只定义热阶段和删除阶段,而另一个策略可能定义所有四个阶段。
1. 制定Lifecycle 策略
这一步可以在 Kibana 上操作,依次点击 Management -> index_lifecycle_management -> Create policy,输入配置参数后,点击Save可以生成一个新的策略。
为了测试,这里设置了1个小时后安全删除数据。
点击 Show request 可以得到 ES 语句。为了测试效果,我这里把各个数值都设置的很小。
PUT _ilm/policy/my_index_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "3d",
"max_size": "1gb",
"max_docs": 3
},
"set_priority": {
"priority": 100
}
}
},
"delete": {
"min_age": "1h",
"actions": {
"delete": {}
}
}
}
}
}