【发布时间】:2012-08-23 19:55:34
【问题描述】:
我需要读取 Google AppEngine 数据存储中的所有条目以进行一些初始化工作。有很多实体(目前为 80k),而且还在继续增长。我开始达到 30 秒的数据存储查询超时限制。
对于如何在数据存储区中对这些类型的大量读取进行分片,是否有任何最佳实践?有什么例子吗?
【问题讨论】:
-
你能解释一下用例吗?
-
我有一个查询,它基本上只是在我的数据存储中扫描特定类型的实体。那里大约有 80k 个,它们需要很长时间才能阅读,大约 45 秒。这超过了数据存储读取超时,这意味着这些表扫描失败。我试图了解如何以某种方式将我的读取分成小块,或者以其他方式将其推送到更长期限的处理类型,以便我的初始化不会失败。此外,我拥有的实体数量(今天为 80k)可能会增长,因此我希望这适用于 800k 实体。 @SebastianKreft
-
听起来像是 mapreduce 的工作。
-
在不知道更多关于数据是什么以及为什么要一次查询这么多数据的情况下,我所能做的就是同意@DanielRoseman 的观点,即 mapreduce 往往是解决此类工作的好工具尺寸。有了更多关于查询和数据背后的推理和目的的信息,我们或许能够提供更好的建议。
标签: google-app-engine google-cloud-datastore