elasticsearch bulk批量导入 大文件拆分
命令如下:
curl -s -XPOST http://localhost:9200/_bulk --data-binary @data.json
如果上传的data.json文件较大,可以将其切分为多个小文件,在批量上传,shell脚本如下:
#!/bin/bash
split -l 100000 -a 10 data.json ./tmp/carrier_bulk
BULK_FILES=./tmp/carrier_bulk*
for f in $BULK_FILES; do
curl -s -XPOST http://localhost:9200/_bulk --data-binary @$f >> /dev/null
echo $f >> ./import.log
done
- /dev/null不将输出打印到终端
- 每次循环输出到日志中,可以查看命令是否执行成功,也可以看命令执行的进度。