【发布时间】:2015-03-11 19:47:41
【问题描述】:
我了解在 elasticsearch 中保持数据滚动窗口有两种主要模式:
- 按照 logstash 的建议创建每日索引,并在旧索引掉出窗口时删除它们包含的所有记录
- 使用 elasticsearch 的 TTL 功能和单一索引,当旧记录掉出窗口时,elasticsearch 会自动单独删除旧记录
本能地我选择2,如:
- 我不必编写 cron 作业
- 单个大索引更容易与我的同事交流并让他们查询(我认为?)
- 任何会导致旧日志事件出现的噩梦流动态都不会导致新索引的创建,并且旧事件只会在 elasticsearch 用来进行 ttl 清理的 60 年代期间存在。
但是我的直觉告诉我,一次删除索引的计算强度可能要低得多,尽管我不知道强度降低了多少,也不知道 ttl 的成本有多高。
就上下文而言,我的入站流很少会达到每秒 4K 消息 (mps) 以上的峰值,并且更有可能保持在 1-2K mps 左右。
有没有人比较这两种方法的经验?你可能会说我是这个世界的新手!将不胜感激任何帮助,甚至包括关于思考这类事情的正确方法的帮助。
干杯!
【问题讨论】: