暗夜金星
2019-12-03 13:42
采纳率: 0%
浏览 510

814G的json文件怎么分批导入mongodb中

1.想把814G的json文件导入mongoDB中,抽取想要数据的三元组。(814G的json文件来自与wikidata中的数据)
2.或者怎么用json数据解析法抽取其中的三元组。
(问题难点都是数据太大内存不够,需要分批处理,怎么分批814Gjson文件)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 神隐的小蝴蝶 2019-12-03 15:23

    给出你的JSON示例看看? wikidata的查询好像用的是SPARQL吧?

    一般情况数据量过大的时候,根据你的数据格式和计算类型一般可以有两种方法 1. 搭建类似hadoop集群来做分布式处理。 2. 先对任务进行拆分, 比如类似流式计算的一次处理一条数据

    点赞 评论
  • blownewbee 2019-12-03 16:24

    看你用什么语言,用c++的话,可以使用内存映射文件来处理这种超大的文本文件。800G不算大,我们处理的数据几TB的都有。不过我们处理的是csv文件,json需要针对你特定的文件结构分析

    点赞 评论
  • 会飞的基德 2019-12-03 16:28

    这个是要根据你的文件格式还有编程语言来确定方案的,假如,你每行都只有一个json就比较简单,使用多个线程,分别使用非阻塞式的io流,每次读取固定行数
    然后进行解析处理。若你json是堆叠在一起的,且中间还有别的字符串的话就比较麻烦,需要分块读取,比如每次读取100M到内存中,这就需要处理被截断的问题
    思路是:使用正则或者自己判断末尾是否有被截断的json数据,若存在,则截取处理,拼接到后面读取的字符串中。

    点赞 评论

相关推荐 更多相似问题