我有一些大型 XML 文件(每个 5GB),我正在将其导入到 mongodb 数据库中。我使用 Expat 来解析文档,进行一些数据操作(删除一些字段、单位转换等),然后插入数据库。我的脚本基于此:https://github.com/bgianfo/stackoverflow-mongodb/blob/master/so-import https://github.com/bgianfo/stackoverflow-mongodb/blob/master/so-import
我的问题是:有没有办法通过批量插入来改善这一点?在插入之前将这些文档存储在数组中是一个好主意吗?那么在插入之前我应该存储多少个文档呢?将 json 写入文件然后使用 mongoimport 会更快吗?
我很感激任何建议。
如果您想将 XML 导入到 MongoDB,并且到目前为止您选择使用 Python 来完成这项工作,但您愿意接受进一步的方法,那么也可以通过以下步骤执行此操作:
- 使用 XMLStarlet 将 XML 文档转换为 CSV 文档 http://www.joyofdata.de/blog/transforming-xml-document-into-csv-using-xmlstarlet/
- 使用 AWK 将 CSV 转换为包含 JSON 的文件 http://www.joyofdata.de/blog/import-csv-into-mongodb-with-awk-json/
- 将 JSON 文件导入 MongoDB
XMLStarlet 和 AWK 都非常快,您可以使用非平凡的结构(子对象、数组)存储 JSON 对象。
http://www.joyofdata.de/blog/transforming-xml-document-into-csv-using-xmlstarlet/ http://www.joyofdata.de/blog/transforming-xml-document-into-csv-using-xmlstarlet/
http://www.joyofdata.de/blog/import-csv-into-mongodb-with-awk-json/ http://www.joyofdata.de/blog/import-csv-into-mongodb-with-awk-json/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)