業(yè)務(wù)場景需要把大量的json文件,讀取并重新解析導(dǎo)入到elasticsearch,json文件是保存在不同的日期文件夾下的,單個(gè)文件夾大小差不多80g,文件下json文件數(shù)量沒實(shí)際算過但應(yīng)該有 1w+我的處理方式開個(gè)線程池,然后多線程讀取不同的json文件,json里的數(shù)據(jù)是 數(shù)組的形式 [data1, data2, data3, data4,...],我這邊解析這個(gè) json 文件 ,然后遍歷 每個(gè) data,并把 data 解析成需要的 json 格式并導(dǎo)入elasticsearch,通過 elasticsearch 的批量導(dǎo)入處理,每一千條導(dǎo)入一次想要改進(jìn)的地方想加入類似斷點(diǎn)續(xù)傳的功能,就是當(dāng)我程序運(yùn)行到一半斷了,我不需要從頭開始,而是從上次斷開的地方重新讀取導(dǎo)入,但沒有實(shí)現(xiàn)頭緒,我是用Java做的
2 回答

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
斷點(diǎn)續(xù)傳心許還是麻煩了些,可以用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
這樣連多線程都省了。
添加回答
舉報(bào)
0/150
提交
取消