发送ElasticSearch批量API数以千万计的小文档

时间:2018-06-07 14:22:07

标签: elasticsearch pyelasticsearch elasticsearch-bulk-api

quantitative sizing上观看ES网络研讨会之后,我编写了一个使用多处理和elasticsearch-py库的python脚本,对来自30个EC2实例的240天遥测数据进行helpers.bulk索引调用;在Kinbana监控仪表板中我可以看到大约4000万份文档。

批量调用来自与安装了ElasticSearch的实例不同的EC2实例。

我的困惑是ES如何处理这些批量调用。它是否将数据存储在本地某处,然后在某些后台进程中对其进行索引?

我的脚本在一夜之间成功退出,但在监控仪表板中,我看到堆位于97%,并且有8个或更多活动请求,而且是7个小时之后。

我仔细检查了netstat -naltp端口上活动连接上的安全组和9200,它们都来自实例本身,这意味着它是一些后台进程。

奇怪的是, Disk Available 每隔几分钟就会增加,所以我最好的猜测是:

批量api将输入存储在磁盘上的某个位置,稍后将它们拉入进行索引,从而执行一些压缩和优化。

我对本论文的唯一支持是 Wait For Active Shards param,但我并没有使用它!

总之,问题是:批量API在短时间内发送数百万个文档时如何工作?

0 个答案:

没有答案