据我所知,在elasticsearch中保留数据滚动窗口有两种主导模式:
本能地,我选择2,as:
但我的直觉告诉我,一次丢弃一个索引的计算密集程度可能要低得多,尽管我不知道ttl的密集程度和成本是多少。
对于上下文,我的入站流很少会高于每秒4K消息(mps),并且更有可能挂在1-2K mps附近。
有没有人有比较这两种方法的经验?你可能会告诉我这个世界的新手!将不胜感激任何帮助,包括甚至帮助正确的思考这类事情的方法。
干杯!
答案 0 :(得分:3)
简短回答是,使用选项1并简单地删除不再需要的索引。
长答案在某种程度上取决于您添加到索引的文档量以及分片和复制设置。如果您的索引吞吐量相当低,TTL可以表现出色,但是当您开始向Elasticsearch写入更多文档时(或者如果您的复制因子很高),您将遇到两个问题。
我们最初使用TTL路由并且有一个完全无法使用的ES群集,并且由于贪婪的合并线程而开始拒绝搜索和索引请求。
您可以尝试“文档吞吐量过多吗?”但从你的用例来看,我建议节省一些时间,然后选择更符合索引的索引删除路由。
答案 1 :(得分:2)
我会选择选项1 - 即每日删除指数。
的优点:
Time-Based Data Guide中还详细介绍了这些优势,另请参阅Retiring Data
缺点:
专业人士:
缺点: