如何快速将json记录批量上传到elasticsearch?

时间:2016-11-13 20:41:29

标签: elasticsearch

我已阅读docs on bulk upload

我生成了一个每行1个json的文件,大约160个演出。批量上传看起来我必须在每行插入之前放置某种架构信息,这会炸掉文件的大小。

要批量上传我的1个json每行文件,我使用gnu parallel to post with curl

cat out.json  | parallel -j 32 --pipe -N1 curl -XPOST 'http://localhost:9200/xxx/yyy' --data-binary  @- 

但这确实很慢。我还可以在具有SSD的计算机上运行该作业,拍摄快照,然后在没有安装的情况下加载到服务器上。您使用哪些技术进行快速批量上传?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用json输入文件查看logstash。 输入filter插件配置。因为logstash也说只要服务很快就使logstash更快。因为读取json是非常繁重的文件系统操作(磁盘成本会很高)。

如果您的群集遭受写入性能的影响。请考虑添加buffer queue来保存数据。如果您的ES数据源超出Elasticsearch群集的数据摄取能力,则可以使用消息队列作为缓冲区。默认情况下,当索引器使用率低于传入数据速率时,Logstash会限制传入事件。由于此限制可能导致事件在数据源缓冲,因此防止消息队列的背压成为管理部署的重要部分。