我生成了一个每行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的计算机上运行该作业,拍摄快照,然后在没有安装的情况下加载到服务器上。您使用哪些技术进行快速批量上传?
答案 0 :(得分:1)
我认为您可以使用json输入文件查看logstash。 输入filter插件配置。因为logstash也说只要服务很快就使logstash更快。因为读取json是非常繁重的文件系统操作(磁盘成本会很高)。
如果您的群集遭受写入性能的影响。请考虑添加buffer queue来保存数据。如果您的ES数据源超出Elasticsearch群集的数据摄取能力,则可以使用消息队列作为缓冲区。默认情况下,当索引器使用率低于传入数据速率时,Logstash会限制传入事件。由于此限制可能导致事件在数据源缓冲,因此防止消息队列的背压成为管理部署的重要部分。