如何并行更新400,000个GAE数据存储区实体?

Kei*_*ith 2 java parallel-processing google-app-engine google-cloud-datastore

我有400,000个特定类型的实体,我想对每个实体执行一个简单的操作(添加属性).我不能连续处理它们,因为它需要永远.我不想使用MapReduce库,因为它很复杂而且势不可挡.

基本上我想在任务队列上创建100个任务,每个任务占用大约4,000个实体并在每个任务上执行此操作.希望当所有任务并行执行时,处理所有400k实体不会超过几分钟.

但是,我不确定如何使用GAE查询来执行此操作.我的实体的字符串ID为"230498234-com.example",由我的应用程序生成.我希望每个任务基本上都要向数据存储区询问"请给我实体#200,000-#204,000",然后逐个操作它们.

这可能吗?如何以这种方式划分数据存储区?

小智 5

这是MapReduce的完美工作(https://developers.google.com/appengine/docs/python/dataprocessing/).一开始可能很难学,但一旦掌握,你就会爱上它.

您还可以考虑在下次保存条目时延迟添加属性,前提是该属性与查询中的默认值不同.