ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

如何改善将XML导入mongodb?

2019-10-29 22:58:31  阅读:332  来源: 互联网

标签:mongodb import pymongo xml python


我有一些要导入到mongodb数据库的大型XML文件(每个5GB〜).我正在使用Expat解析文档,进行一些数据操作(删除某些字段,单位转换等),然后插入数据库中.我的脚本基于这个:https://github.com/bgianfo/stackoverflow-mongodb/blob/master/so-import

我的问题是:有没有一种方法可以通过批量插入来改善这一点?在插入之前将这些文档存储在数组中会是一个好主意吗?那么,在插入之前我应该​​存储多少文件?将jsons写入文件,然后使用mongoimport会更快吗?

我感谢任何建议.

解决方法:

Storing these documents on an array before inserting would be a good idea?

是的,很有可能.它减少了往返数据库的次数.您应该监视您的系统,由于IO等待,它在插入时可能会闲置很多(也就是说,开销和线程同步比实际数据传输要花费更多时间).

How many documents should I store before inserting, then?

很难说,因为它取决于许多因素.经验法则:1,000-10,000.您将不得不尝试一下.在较旧的mongodb版本中,整个批次不得超过16MB的文档大小限制.

Writing the jsons into a file and then using mongoimport would be faster?

不可以,除非您的代码有缺陷.这意味着您必须复制两次数据,并且整个操作应与IO绑定.

另外,最好先添加所有文档,然后再添加任何索引,而不要反过来添加索引(因为这样,每次插入时都必须修复索引)

标签:mongodb,import,pymongo,xml,python
来源: https://codeday.me/bug/20191029/1963388.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有