【问题标题】:ElasticSearch Scroll API Connection timeElasticSearch Scroll API 连接时间
【发布时间】:2020-04-08 09:47:17
【问题描述】:

我们使用的是 Elasticsearch 6.8 版本。我只想使用 Scroll API (https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-scroll.html) 和 scroll=1m 连接时间。 (1m是一个例子,我要问的是x分钟或小时的最大值..)

我想知道的是这个滚动连接时间。如果我使用 scrollId 请求,连接时间会重置,但它的最长时间是多少,或者保持连接很长时间是不好的?

我想使用带有 1-1000 万条记录的 scrollId,并每 1 分钟将我的文档批量导出。无论如何,如果我的系统以某种方式关闭,我想继续我停止的地方,所以我想尽可能长时间地使用我的连接,如果它不使用额外的额外内存或 cpu 等。我可以保持的最长时间是多少连接活着,它应该是什么?还是应该这样?

谢谢!

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    保持滚动上下文活动的最大值是 24 小时(24 小时)。可以通过设置“search.max_keep_alive”集群设置来更改此限制。

    设置较大的值会增加分片的负载。

    来自documentation

    滚动不是针对实时用户请求,而是针对 处理大量数据,例如为了重新索引 将一个索引的内容转换为具有不同配置的新索引

    来自documentation

    通常,后台合并过程通过合并来优化索引 将较小的细分市场组合在一起以创建新的较大细分市场,此时 较小的段被删除。这个过程在继续 滚动,但开放的搜索上下文会阻止旧段 在它们仍在使用时被删除。这就是 Elasticsearch 的方式 能够返回初始搜索请求的结果, 无论后续对文档进行更改。

    来自documentation

    当滚动超时时自动删除搜索上下文 被超过。然而,如前所述,保持卷轴打开是有代价的 在上一节中,因此应将滚动明确清除为 使用 clear-scroll 不再使用滚动条 接口:

    【讨论】:

      猜你喜欢
      • 2019-09-26
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2015-04-01
      • 2016-07-09
      • 1970-01-01
      相关资源
      最近更新 更多