使用 AWS DynamoDB 或 Redshift 存储分析数据

Using AWS DynamoDB or Redshift to store analytics data

我想问一下哪种服务最适合我。例如,一个类似 facebook 的移动应用程序,我需要在其中跟踪用户的每一个动作,例如访问的页面或单击的链接。

我正在考虑使用 DynamoDB 创建多个 tables 来跟踪每个不同的活动。当我 运行 我的分析应用程序时,它将查询每个 table 的所有数据(相似的散列键但不同的范围键,因此我可以查询所有数据)并在应用程序中计算结果。因此,主要成本是读取吞吐量,每个 table 很容易达到 250 reads/s(~ 28 美元/月)。每个 table 的存储空间没有限制所以是免费的?

对于 Redshift,我将按每月 100% 使用率支付 160GB 的存储大小。这将花费我大约 14.62 美元/月。虽然看起来便宜,但我对Redshift不熟悉,所以不知道还有哪些隐藏费用。

提前致谢!

Pricing for Amazon DynamoDB 有几个组成部分:

  • 预配置的吞吐量(表的速度)
  • Indexed Data Storage(存储数据的成本)
  • 数据传输(用于从 AWS 到 Internet 的数据)

例如,100GB 的数据存储成本约为 25 美元。

如果您想要 250 个 reads/second,每 50 个单位的成本为 0.0065 美元,即 .0065 * 5 units * 24 hours * 30 days = .40(加上一些写入容量单位)。

Pricing for Amazon Redshift 基于节点的数量和类型。一个 160GB dc1.large 节点的成本是每个节点 25c/hour * 24 hours * 30 days = 0(但您的情况可能只需要一个节点)。

Amazon Redshift 因此价格更高,但它也是一个功能更丰富的系统。您可以针对 Amazon Redshift 运行 复杂 SQL,而您必须编写一个应用程序来检索、连接和计算来自 DynamoDB 的信息。将 DynamoDB 视为一种存储服务,而 Redshift 也是一种查询服务。

然而,真正的决定应该基于您将如何使用数据。如果您可以创建一个适用于 DynamoDB 的应用程序,那么就使用它。然而,许多人发现在 Redshift 上使用 SQL 的简单性要容易得多。