【问题标题】:How to do bulk deletes from Google App Engien Datastore如何从 Google App Engine 数据存储中批量删除
【发布时间】:2018-04-13 07:27:10
【问题描述】:

我需要从数据存储中删除批量记录,我浏览了所有以前的链接,但都只是谈到从数据存储中获取实体,然后一一删除,就我而言,问题是我有大约 80K 实体和每当我尝试使用数据存储区 db.delete() 方法进行读取时,读取都会超时。

这里有没有人知道一种更接近 SQL 的方法来执行批量删除?

【问题讨论】:

  • 查看答案HERE。 :)

标签: google-app-engine google-cloud-datastore jdo


【解决方案1】:

您可以使用任务队列+数据库光标进行删除。

任务最多可以执行 10 分钟,这可能足以删除所有实体。但是如果需要更长的时间,您可以获取当前光标位置,并以该光标为参数再次调用任务本身,并从最后一个位置开始处理。

【讨论】:

    【解决方案2】:

    定义您使用的 API。 JDO?盖伊? JPA?您引用了一些 db.delete,但将其标记为 JDO;他们不一样。 JDO 显然提供了 pm.deletePersistentAll(),如果想要更多,您可以使用 Google Mapper API

    【讨论】:

      【解决方案3】:

      您可以使用 Cloud Dataflow 批量删除 Datastore 中的实体。您可以使用 GQL 查询来选择要删除的实体:

      https://cloud.google.com/datastore/docs/bulk-delete

      【讨论】:

        猜你喜欢
        • 2010-11-06
        • 2010-11-03
        • 1970-01-01
        • 2014-05-13
        • 2011-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多