es生命周期
介绍
当数据量特别大的时候,我们希望ES能够根据设定的阈值自动创建索引,并将过期的索引删除。
生命周期的大致阶段:HOT>WARM>COLD>DELETE,主要区别在于:
- HOT 可写 查询快 频繁查询
- WARM 可写 查询快,少写入
- COLD 不可写 查询慢
- DELETE 删除
如何实现?
- 自定义生命周期策略
- 定义索引模板,创建时将周期策略加进来
- 写入数据
非滚动更新实现步骤
以下例子为非滚动配置的索引,索引为每天以日期创建的索引。
1,定义生命周期策略
创建一个策略命名为“默认”。配置温阶段2天。45天后删除索引。
热阶段无需配置不设置滚动更新,接下来配置文阶段设置为2天。编辑删除设置45天。
2,定义索引模板
组件模板不用设置,索引设置这里可配置策略,分片等配置。
{ |
做以上简单配置就可以完成模板创建。
3,写入数据(Python为例)
上图配置了索引分片,周期策略。
索引命名为channelinfo-log-日期,匹配到了第二步创建的索引模板channelinfo。
那么,以哪个为准创建索引呢?
当创建索引的时候配置了索引策略和分片等配置,以在索引上的配置为主。
当不设置索引,不指定body=create_index_body对象的时候会默认使用模板的配置。
如图,不设置策略,默认使用了模板中的策略。
总结:
1,如果定义的索引符合某个模板的格式,会默认使用这个模板并使用这个模板的配置策略。
2,如果自己定义了索引的配置则使用自己配置的,未配置项还是使用匹配上的模板的配置,索引配置优先级大于模板。
滚动更新实现步骤
和非滚动的主要区别是:
1,生命周期策略打开滚动更新。
2,对索引命名有要求,符合test-log-xxxx的命名规则。
3,脚本中不用每天创建索引,只使用一个符合格式的索引即可。如test-log-000001
1,定义生命周期策略
打开滚动更新。
2,定义索引模板
配置模板和非滚动更新模板的配置都是一样。
3,写入数据(Python为例)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 天天向上!
评论