【问题标题】:What is the use case for index closing in ElasticSearch?ElasticSearch 中索引关闭的用例是什么?
【发布时间】:2019-01-16 18:25:39
【问题描述】:

我发现可以关闭 ES 索引。 https://www.elastic.co/guide/en/elasticsearch/reference/6.3/indices-open-close.html

关闭的索引几乎没有集群开销(除了维护其元数据),并且被阻塞以进行读/写操作。

我正在尝试优化 ES 以写入大量数据,即每秒 10 万条消息。每小时都会创建新索引,并且不再使用旧索引进行写入。但是可以从旧索引中读取。

如果我需要对它们执行搜索,我是否应该关闭旧索引以优化写入并按需打开它们?

【问题讨论】:

    标签: elasticsearch indexing lucene


    【解决方案1】:

    封闭索引的用例非常小众。除了改变一些设置,比如Val's answer,我看不到它们的广泛(和正确)使用。在扩展集群时(因为封闭索引的分片不会四处移动)或加载 N 个封闭索引时,您可能会遇到问题,最终可能会给集群带来太大压力。

    实际上,按需有效打开和关闭索引所需的管道是不合理的。或者至少我没有看到一个。这就是为什么frozen indices are deprecated 现在。

    您可以考虑替代方案,例如force-merge、快照/恢复,或者,取决于您的Elasticsearch licensesearchable snapshot

    如果您使用的是时间序列数据,您还可以考虑使用托管解决方案,例如 Sematext Logs(偏见警告:我为 Sematext 工作)。

    【讨论】:

      【解决方案2】:

      如果您的索引已关闭,您显然无法从中读取/搜索。某些操作,例如changing index analyzers,要求您在关闭索引之前关闭索引,然后再重新打开它。

      除此之外,如果您知道需要从旧索引中读取/搜索,那么只需将它们保持打开即可。每次需要读取它们时关闭/重新打开它们是没有意义的。

      如果您真的想针对写入进行优化,您可以执行 hot/warm architecture 并将旧索引移动到热节点,同时将正在写入的新索引保留在热节点上。

      如果您想optimize your indexing speed,您还可以实施一些其他最佳实践。

      【讨论】:

        猜你喜欢
        • 2013-02-08
        • 2014-03-15
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-11
        相关资源
        最近更新 更多