为了账号安全,请及时绑定邮箱和手机立即绑定

大量Json文件批量读取解析导入elasticsearch,该怎么做?

大量Json文件批量读取解析导入elasticsearch,该怎么做?

侃侃无极 2018-07-04 10:06:04
业务场景需要把大量的json文件,读取并重新解析导入到elasticsearch,json文件是保存在不同的日期文件夹下的,单个文件夹大小差不多80g,文件下json文件数量没实际算过但应该有 1w+我的处理方式开个线程池,然后多线程读取不同的json文件,json里的数据是 数组的形式 [data1, data2, data3, data4,...],我这边解析这个 json 文件 ,然后遍历 每个 data,并把 data 解析成需要的 json 格式并导入elasticsearch,通过 elasticsearch 的批量导入处理,每一千条导入一次想要改进的地方想加入类似断点续传的功能,就是当我程序运行到一半断了,我不需要从头开始,而是从上次断开的地方重新读取导入,但没有实现头绪,我是用Java做的
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

断点续传心许还是麻烦了些,可以用split命令把这些大文件先切割成小文件,再直接用curl命令通过bulk API把这些文件给提交上去:

curl -XPOST -H 'Content-Type: application/json' localhost:9200/_bulk --data-binary @/path/to/your/file_1.jsoncurl -XPOST -H 'Content-Type: application/json' localhost:9200/_bulk --data-binary @/path/to/your/file_2.jsoncurl -XPOST -H 'Content-Type: application/json' localhost:9200/_bulk --data-binary @/path/to/your/file_3.jsoncurl -XPOST -H 'Content-Type: application/json' localhost:9200/_bulk --data-binary @/path/to/your/file_4.jsoncurl -XPOST -H 'Content-Type: application/json' localhost:9200/_bulk --data-binary @/path/to/your/file_5.json

这样连多线程都省了。


查看完整回答
反对 回复 2018-07-21
?
忽然笑

TA贡献1806条经验 获得超5个赞

全部复制一遍,传完一个文件删一个文件

查看完整回答
反对 回复 2018-07-21
  • 2 回答
  • 0 关注
  • 2984 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号