各位大大帮我看看我这种处理方式是否合理【大量Json文件批量读取解析导入elasticsearch】。

发布于 2022-09-07 16:09:34 字数 464 浏览 25 评论 0

业务场景

需要把大量的json文件,读取并重新解析导入到elasticsearch,json文件是保存在不同的日期文件夹下的,单个文件夹大小差不多80g,文件下json文件数量没实际算过但应该有 1w+

我的处理方式

开个线程池,然后多线程读取不同的json文件,json里的数据是 数组的形式 [data1, data2, data3, data4,...],我这边解析这个 json 文件 ,然后遍历 每个 data,并把 data 解析成需要的 json 格式并导入elasticsearch,通过 elasticsearch 的批量导入处理,每一千条导入一次

想要改进的地方

想加入类似断点续传的功能,就是当我程序运行到一半断了,我不需要从头开始,而是从上次断开的地方重新读取导入,但没有实现头绪,我是用Java做的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离鸿 2022-09-14 16:09:34

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

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

这样连多线程都省了。

电影里的梦 2022-09-14 16:09:34

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文