繁体   English   中英

如何将大型XML / JSON数据集导入Django / Postgres应用程序/数据库?

[英]How to import large XML/JSON dataset into Django/Postgres app/database?

我们有一个庞大的Filemaker数据库,并编写了一个工具,可将所有必需的信息导出到XML / JSON。

我们已经使用Django REST框架创建了Django应用,并适当地设置了模型,但是现在对于将所有XML / JSON数据导入站点的最佳方法有些困惑。

最初,我们修改了Filemaker输出以匹配dumpdata的结构,并认为将夹具与loaddata结合使用将是理想的选择,但我读得越多,由于文件的最终大小和内存问题,这似乎是不可能的(我们将应用托管在目前是一个heroku开发实例)。

谁能推荐将此数据集加载到我们的Django应用中的最佳方法? (我们也可以编写脚本以通过API逐一插入所有内容,但这似乎效率很低)。

如果很重要,我们的JSON结构例如如下:

[
    {
        "model": "archive.archiveobject",
        "pk": 1,
        "fields": {
            "title": "Example Title",
            "description": "Example Description",
            "date_begin": "2014-03-12",
            "date_end": "2014-03-12",
            "created": "2014-04-01T14:04:53.496Z",
            "owner": 1
        }
    }
]

您应该考虑的其他一些事项:

  • Heroku对请求有时间限制,因此您的应用程序将在收到请求后不久就需要发送HTTP响应。
  • 您可能希望在发生瞬态故障时使加载稳定,因此您需要一种将对象标记为已加载并从上次中断的位置恢复的方法。

我的建议是将作业分成多个块(可能是100个对象,然后从那里上来),并创建一个批量加载API调用,您可以使用该API来加载这些块。 一种快速而肮脏的解决方案可能是将这些块放入单独的文件(chunk-0000001.json)中,并在完成后重命名(loaded-chunk-0000001.json)。 这些文件的文件级锁定将允许您同时运行作业。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM