首页 > 解决方案 > PostgreSQL 与 Django:我应该将静态 JSON 存储在单独的 MongoDB 数据库中吗?

问题描述

语境

我正在制作一个依赖于抓取的 API 数据的 Django Web 应用程序。

工作流程:

A) 我从外部 API 检索数据

B) 在我的 PostgreSQL 数据库中插入我需要的结构化、处理过的数据(约占整个 JSON 的 5%)

我想添加第三步(在“B”步骤之前或之后),它将整个外部 API 响应存储在我的数据库中。出于三个原因:

  1. 我想“冻结”数据,作为“审计跟踪”,以防 API 更改内容(以前发生过)

  2. 我的业务中的 API 调用很昂贵,而且通常仅限于 6 个月的历史。

  3. 稍后我可能会决定从 API 中集成更多数据。

由于 2) 和 3),在需要数据时无法再次调用外部 API

请注意,存储的 API 响应永远不会更新读取性能并不重要。此外,能够查询存储的 API 响应非常好,可以执行探索性分析。

为了提供额外的上下文,每天有几千个 API 调用,这代表每年大约50GB 的数据

我的问题来了

我应该将原始 JSON 存储在我用于 Django Web 应用程序的同一个 PostgreSQL 数据库中,还是存储在单独的数据存储区(MongoDB 或其他一些 NoSQL 数据库)中?

如果我将原始 JSON 存储在我的 PostgreSQL 数据库中,我担心我的 Web 应用程序性能会由于数据库“臃肿”而降低(我的 Django 数据库中 50Mb 的已解析 SQL 数据相当于来自外部的 2GB 原始 JSON API,因此在我的数据库中集成完整的 API 响应将使其大小乘以 40)

成本呢?因为所有这些都托管在 DBaaS 上。我知道成本会大大增加(由于数据库大小的增加),但是这两种选择中的任何一种更具成本效益吗?

标签: djangodatabasemongodbpostgresql

解决方案


推荐阅读