【问题标题】:Google App Engine: Modifying 1000 entitiesGoogle App Engine:修改 1000 个实体
【发布时间】:2014-06-27 15:45:23
【问题描述】:

我有大约 1000 个这样的用户帐户实体:

class UserAccount(ndb.Model):
    email = ndb.StringProperty()

其中一些电子邮件值包含大写字母,例如 JohnathanDough@email.com。我想从所有 UserAccount 实体中选择所有 email 值并应用 python 的 email.lower()。我怎样才能有效地做到这一点,最重要的是,没有错误?

注意:电子邮件值对于登录很重要,所以我不能搞砸了。有没有办法备份这些数据以防万一我犯了错误?

谢谢。

【问题讨论】:

    标签: python google-app-engine app-engine-ndb


    【解决方案1】:

    是的,当然。即使数据存储管理是一项实验性功能,我们也可以在不编码的情况下备份和恢复数据。按照以下说明进行备份流程:Backing up data。 要改为处理您的数据,最有效的方法是使用MapReduce library

    【讨论】:

      【解决方案2】:

      Mapreduce 有效,但如果您以前从未这样做过,它会过于复杂。
      使用任务队列,每一个都可以处理一个查询结果页面,存储下一页令牌并为下一页启动另一个任务队列。
      如果您连续运行任务队列,则比 mapreduce 慢。 1000 个条目并不多。或许一分钟就搞定了。

      【讨论】:

      • 你是对的 - Map Reduce 对初学者来说相当复杂。要求你写一个在这个非常特殊的例子中如何使用任务队列的例子是强加的吗?我可能会感谢完成这项工作的最少代码;我还没有使用过任务队列。
      • 请先尝试编写代码,如果遇到问题,请单独发布 S.O 问题。
      • 查看这个答案,例如:stackoverflow.com/questions/21638552/…
      • 谢谢你,齐格·曼德尔。我已经阅读了答案链接和其他资源,并且学到了很多东西。我仍然不清楚光标之类的东西。我已经按照您的建议创建了一个单独的 SO 问题。请看这里:stackoverflow.com/questions/24761801/…。再次感谢您。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多