【发布时间】:2014-12-16 02:01:47
【问题描述】:
我目前正在构建一个带有 GAE 后端的移动应用。我在 CloudSQL 和 Datastore 之间折腾以获得持久性。我更喜欢使用数据存储,因为我将存储大量数据(而且更便宜)。我的应用程序的一项要求是报告用户在给定日期范围内投入活动的时间总和。我知道数据存储区上的 Sum() 函数实际上是不可能的,因为它是分布式的,并且应该在每次插入/删除时使用和更新计数器。但是,如果我必须报告给定日期范围的总和,我不太确定这将如何工作。我可能会保留总小时数、年初至今、月和周的计数器。但这仍然是相当有限的,因为我无法获得从 1 月 23 日到 8 月 15 日投入的时间。另外,这似乎是很多冗余数据......
有没有办法在数据存储中实现这种类型的聚合?或者 CloudSQL 是我唯一的选择。
我知道 Sum() 不是数据存储上的东西,但我想我正在尝试找到某种方法来实现与以下(简化)SQL 等效的数据存储:
SELECT sum(hours)
FROM {activity table}
WHERE {activity_date} between {min_date} and {max_date}
【问题讨论】:
标签: google-app-engine aggregate-functions google-cloud-datastore