上下文
我正在制作一个依赖于报废的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数据库)中?
如果我要在PostgreSQL数据库中存储原始JSON,我担心我的Web应用程序性能会由于数据库“膨胀”而降低( 50Mb的已解析SQL数据我的Django数据库相当于来自外部API的2GB原始JSON ,因此在我的数据库中集成完整的API响应会将其大小乘以40)
费用如何?因为所有这些都托管在DBaaS上。我知道成本会大大增加(由于数据库的大小增加),但这两种选择中的任何一种是否更具成本效益?
谢谢!