我有一些大型 XML 文件(每个 5GB ~),我正在将它们导入到 mongodb 数据库中。我正在使用 Expat 来解析文档,进行一些数据操作(删除一些字段、单位转换等),然后插入到数据库中。我的脚本基于这个:https://github.com/bgianfo/stackoverflow-mongodb/blob/master/so-import
我的问题是:有没有办法通过批量插入来改善这一点?在插入之前将这些文档存储在数组中是个好主意吗?那么在插入之前我应该存储多少个文件呢?将 json 写入文件,然后使用 mongoimport 会更快吗?
我很感激任何建议。
最佳答案
如果您想将 XML 导入 MongoDB,而 Python 正是您迄今为止选择完成这项工作的工具,但您对进一步的方法持开放态度,那么也可以通过以下步骤执行此操作:
- transforming the XML documents to CSV documents using XMLStarlet
- transforming the CSVs to files containing JSONs using AWK
- 将 JSON 文件导入 MongoDB
XMLStarlet 和 AWK 都非常快,您可以使用重要的结构(子对象、数组)存储 JSON 对象。
http://www.joyofdata.de/blog/transforming-xml-document-into-csv-using-xmlstarlet/ http://www.joyofdata.de/blog/import-csv-into-mongodb-with-awk-json/
关于python - 如何改进 XML 导入到 mongodb 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21817941/