当前位置: 首页 > 面试题库 >

Elasticsearch对1000万个事件的索引编制速度

尉迟明辉
2023-03-14
问题内容

我试图弄清楚为什么Elasticsearch在索引编制方面如此之慢。我不确定这是否是Elasticsearch本身的局限性,但我将分享到目前为止的内容。

我有一个elasticsearch节点和一个运行在一个盒子上的logstash实例。我的文档大约有15个字段,并且我有一个具有正确类型的elasticsearch映射设置(尽管我尝试了不使用映射并获得几乎相同的结果)。

我一次将大约8到1千万个事件编入索引,并采用了以下方法。

具有以下格式的批量api(我将csv转换为JSON并将其放入文件中,并在其中卷曲

{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }

我还尝试了使用原始csv的tcp输入或使用文件侦听器的logstash,并将csv记录到logstash正在侦听的文件的末尾。

这三种方法似乎每秒都吸收约10,000个事件,这非常慢。

难道我做错了什么?我是否应该在批量提取中明确分配一个ID,而不是让其自动生成一个ID?

通过批量API提取时,我将事件分为50,000个事件文件和100,000个事件文件,并分别提取了每个事件文件。


问题答案:

您会发现我在这里对此进行了一些研究,您可以下载Indexing
Scripts文件,该文件包含一些有用的脚本,可最大程度地提高索引性能。实际上,在硬件和Elasticsearch索引优化方面确实有所不同。即删除副本节点等。

希望这对您有所帮助。



 类似资料:
  • 问题内容: 我有一个大约2亿个文档的ElasticSearch索引,总索引大小为90Gb。 我更改了映射,所以我希望ElasticSearch重新索引所有文档。 我编写了一个脚本,该脚本创建一个新索引(具有新映射),然后遍历旧索引中的所有文档,然后将其放入新索引中。 它似乎可以工作,但是问题是它的运行速度非常慢。它从两天前以300个文档/分钟开始,现在的速度是150个文档/分钟。 该脚本在elas

  • 问题内容: 我试图了解如何在Elasticsearch上优化索引。让我澄清我的需求; 我现在有两个指标。可以这样说和(两个索引可以看到大致相同的大小) 我有6台专用于Elasticsearch的机器(我们可以说完全相同的硬件) 我的elasticsearch用法中最重要的部分是写作,因为我实时进行大量写作。 所以我的问题是,如何使用这6台机器优化写入操作? 我是否应该将机器分为两部分,例如3台机器

  • 问题内容: 我有一个将Twitter Stream索引到Elasticsearch中的系统。它已经运行了几个星期。 最近一个错误已经出现了,说:。 我想知道是否有人遇到过同样的问题? 另外,如果我运行此curl: 它应该给我或多或少的映射中的字段数。字段很多,但不超过1000 问题答案: 此限制已在以下GitHub 问题中引入。 该命令count 计数文本为 “ type” 的行数。因此,我认为计

  • 问题内容: 我在同一台Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用tyre gem)。看来这两个实例都共享相同的elasticsearch索引,这显然不是我想要的。 如何使生产和登台实例使用单独的实例? 问题答案: 您需要覆盖索引名称。假设您要绑定ActiveRecord,它将根据相关模型创建索引名称。您可以使用这样的前缀来调整名称; 然后会创建一个名为的索引,以此类推。

  • 问题内容: 我正在使用Django 1.4,Haystack 2 beta和ElasticSearch .20运行安装程序。我的数据库是PostgreSQL 9.1,它有几百万条记录。当我尝试使用haystack / elasticsearch索引所有数据时,该过程超时,并且收到一条消息,提示“已杀死”。到目前为止,我已经注意到以下几点: 我确实获得了要建立索引的文档数量,因此没有出现“ 0个要建

  • 本文向大家介绍Elasticsearch 为文档编制索引(即添加样本),包括了Elasticsearch 为文档编制索引(即添加样本)的使用技巧和注意事项,需要的朋友参考一下 示例 通过以下步骤安装必要的Python库: 连接到Elasticsearch,创建一个文档(例如,数据条目),然后使用Elasticsearch对文档进行“索引”。