0

下面是我通常会插入 MySQL 的示例记录。然后我可以使用 SQL 执行常规类型的查询。请注意,我将以 5 分钟为间隔设置日期时间。

datetime          account_id country  zip   count 
2012-04-27 03:40   1234        69    91845   234
2012-04-27 03:45   3432        43    91813   212

我将使用 simpledb 和 python boto api。

鉴于它是一个键值数据存储,其中值可以存储为字典/json 类型对象,那么存储数据以便我可以查询的正确结构是什么?例如,按国家/地区选择总和(计数)组。

4

1 回答 1

0

SimpleDB 只真正支持 count(*) 聚合,不支持 sum。

您要么 1) 需要进行一些 hadoop 处理来聚合结果并返回结果,要么 2) 在单独的文档中存储和增加聚合(我通常将逻辑添加到我的存储库附近(如在更新方法中)或,对于需要更快更新/获取例程的文档,向 Amazon SQS 添加一条消息,然后在后台服务中重新计算这些聚合。

实话实说 - 我没有从 SimpleDB 报告太多,编写一个定期更新关系数据库中的数据的同步脚本要容易得多,然后我可以从中报告,而不必担心与前端应用程序的资源争用。

谢谢,

哈尔

于 2012-04-30T15:42:49.763 回答