4

我正在尝试确定 Amazon SimpleDB是否适合我拥有的数据子集。

我部署了数千个记录数据的自主传感器设备。

每个传感器设备基本上每天每小时四次报告几个值,持续数月和数年。我需要保留所有这些数据以进行历史统计分析。一般是一次写入,多次读取。基于服务器的应用程序定期运行以查询数据以推断其他信息。

今天的数据行,在 SQL 中看起来像这样:

  • (id, device_id, utc_timestamp, value1, value2)

我们现有的 MySQL 解决方案不会进一步扩展,有数千万行。我们查询诸如“告诉我昨天所有 value1 的总和”或“告诉我过去 8 小时内 value2 的平均值”之类的内容。我们在 SQL 中执行此操作,但可以很高兴地更改为在代码中执行此操作。SimpleDB 的“最终一致性”对我们来说似乎很好。

我正在阅读我所能阅读的所有内容,并且即将开始尝试使用我们的AWS帐户,但我不清楚各种 SimpleDB 概念(项目、域、属性等)与我们的域有何关系。

SimpleDB 是一个合适的工具吗?通用的方法是什么?

PS:我们主要使用 Python,但在高层次上考虑这一点并不重要。我现在知道boto库。

编辑:

继续为此搜索解决方案我确实遇到了 Stack Overflow 问题什么是存储时间序列数据的最佳开源解决方案?这很有用。

4

4 回答 4

2

几个月后才跟进这个...

去年夏天,我确实有机会直接与亚马逊交谈,并最终获得了最终成为 DynamoDB 的 beta 程序的访问权限,但无法谈论它。

我会在这种情况下推荐它,在这种情况下,您需要一个主键以及可能被描述为二级索引/范围的内容 - 例如时间戳。这使您对搜索更有信心,即“向我显示设备 X 在星期一和星期五之间的所有数据”

由于各种原因,我们实际上还没有搬到这里,但仍然计划这样做。

http://aws.amazon.com/dynamodb/

于 2012-03-16T23:13:28.333 回答
1

我的意见是,只要您的查询非常简单,Amazon SimpleDb 和 Microsoft Azure Tables 就是一个很好的解决方案。一旦你试图做在关系数据库上绝对不是问题的事情,比如聚合,你就会开始遇到麻烦。因此,如果您要做一些繁重的报告工作,它可能会变得一团糟。

于 2011-06-04T20:03:06.037 回答
0

听起来您的问题最好由循环数据库(RRD) 处理。RRD 以这样一种方式存储时间变量数据,以使文件大小永远不会超过其初始设置。它非常酷,对于生成图表和时间序列信息非常有用。

于 2011-06-28T14:15:49.043 回答
0

我同意 Oliver Weichhold 的观点,即基于云的数据库解决方案将处理您描述的用例。您可以将数据分布在多个 SimpleDB 域(如分区)中,并以可以从单个域执行大多数查询而无需遍历整个数据库的方式存储数据。定义分区策略将是成功迁移到基于云的数据库的关键。这里讲的是数据集分区

于 2011-07-21T18:00:34.883 回答