python - 如何改进 XML 导入到 mongodb 中?

标签 python xml mongodb import pymongo

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

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

我很感激任何建议。

最佳答案

如果您想将 XML 导入 MongoDB,而 Python 正是您迄今为止选择完成这项工作的工具,但您对进一步的方法持开放态度,那么也可以通过以下步骤执行此操作:

  1. transforming the XML documents to CSV documents using XMLStarlet
  2. transforming the CSVs to files containing JSONs using AWK
  3. 将 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/

相关文章:

python - pandas 中分组数据框的 astype 方法失败

php - 最大长度 XSLT 但在输出中保留完整段落

python - 你如何使用 python 从 <abc>some Text</abc> 获取 "some Text"?

Go 中的 MongoDB 与 JSON 和 BSON 的关系

python - Py_InitModule4()在嵌入式Python解释器(使用Cython)上返回NULL

python - 在 BST 中查找小于给定元素的元素数

python - 对二维 numpy 数组中的每一行应用相同的排列

xml - DOM splitText 和 normalize compose 是否应该给出身份?

java - 由于socket异常,mongodb插入失败

javascript - 使用 mongoose 更新数组