需要一种方法来计算GAE数据存储中满足特定条件的实体吗?(超过1000个实体)

Lin*_*ous 4 python google-app-engine google-cloud-datastore

我正在GAE上构建一个需要报告发生事件的应用程序.事件有一个类型,我还需要按事件类型报告.

例如,假设存在事件A,B和C.它们是随机发生的.用户登录并创建一组可以归因于这些事件的实体.当用户回来检查状态时,我需要能够告知在特定时间范围(例如一天或一个月)内发生了多少A,B和/或C事件.

1000限制正在扼杀我通常如何做到这一点.我不需要检索所有实体并将它们呈现给用户,但我需要显示特定日期范围的总计数.有什么建议?

我有点python/GAE noob ...

小智 7

App Engine不是关系数据库,您无法像这样快速进行计数.最好的方法是在写入时更新计数,而不是在读取时生成计数.

生成计数时,有两种通用方法可以很好地与App Engine一起使用,以最大限度地减少写入争用:

  1. 将计数存储在Memcache或本地内存中并定期刷新.这是最简单的解决方案,但它可能是易失性的,并且可能会丢失数据.
  2. 使用分片计数器.这种方法更可靠但更复杂.您将无法通过计数轻松排序,但您也可以定期刷新到另一个索引计数字段并按此排序.