【问题标题】:How to import large XML/JSON dataset into Django/Postgres app/database?如何将大型 XML/JSON 数据集导入 Django/Postgres 应用程序/数据库?
【发布时间】:2014-05-12 09:46:21
【问题描述】:

我们有一个大型 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
        }
    }
]

【问题讨论】:

    标签: python json django postgresql heroku


    【解决方案1】:

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

    • Heroku 对请求有时间限制,因此您的应用程序需要在收到请求后尽快发送 HTTP 响应。
    • 您可能希望加载在发生暂时性故障时保持稳健,因此您需要一种方法将对象标记为已加载并从中断处继续。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2021-10-31
      • 2020-12-21
      • 1970-01-01
      • 2021-04-18
      • 2011-06-26
      • 2017-09-19
      相关资源
      最近更新 更多