存储大量外部API数据的最佳方式...使用Ruby或Python

时间:2015-01-04 02:11:25

标签: python mysql ruby json mongodb

我试图设计一个可以定期从外部api“下载”大量数据的系统。

此用户可以拥有一次我需要的大约600,000条数据记录,然后每小时左右检查一次以协调两个数据集。

我想最终在后台任务中使用python或ruby进行此操作,但我很好奇如何存储数据。

是否可能/好主意将所有内容存储在一个记录中,以json为单位复制每个记录?

能够在没有任何失败的情况下索引或搜索数据会很好,所以我想知道什么是最好的实现内存。

例如,如果一个用户有500,000条推文记录,并且我想存储所有这些记录,这将是一个更好的实现?

一条记录为JSON => user_1 = {id:1 twt:“blah”},{id:2 twt:“blah”},..... {id:600,000 twt:“blah”}

vs

许多记录=>
id:1 outside_id = 1 twt:“blah”

id:2 outside_id = 1 twt:“blah”

id:3 outside_id = 1 twt:“blah”

我很好奇我将如何了解每种方法的内存密集程度或最佳解决方案。

记录很复杂,我想存储的每条记录可能有40个属性。

对于最快的复制/存储,MySQL或MongoDB也是更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我认为这一切都归结为项目最重要的需求。这些是我在选择技术之前尝试回答的一些问题:

  1. 插入数据库后是否需要单独访问记录?
  2. 阅读时我是否需要汇总数据(例如报告)?
  3. 项目目标是否更快地将数据写入快速阅读更重要?
  4. 我预计数据会有多大增长,我选择的数据库技术是否可以轻松,便宜,可靠地扩展以支持数据量?
  5. 数据架构是否会发生变化?我是否需要像MongoDB这样的无模式数据库解决方案?
  6. 开发时间/成本,维护时间/成本和运行程序的时间/成本之间的权衡在哪里?
  7. 在不了解详细信息或项目或目标的情况下,我会说为整个数据存储单个JSON对象通常不是一个好主意。这可能会使得更难以读取数据并在将来附加到数据中。您应该更多地考虑如何建模数据并在数据库中以一种在以后实际需要使用它时有意义的方式表示它。

相关问题