【问题标题】:How to do bulk deletes from Google App Engien Datastore如何从 Google App Engine 数据存储中批量删除
【发布时间】:2018-04-13 07:27:10
【问题描述】:
我需要从数据存储中删除批量记录,我浏览了所有以前的链接,但都只是谈到从数据存储中获取实体,然后一一删除,就我而言,问题是我有大约 80K 实体和每当我尝试使用数据存储区 db.delete() 方法进行读取时,读取都会超时。
这里有没有人知道一种更接近 SQL 的方法来执行批量删除?
【问题讨论】:
标签:
google-app-engine
google-cloud-datastore
jdo
【解决方案1】:
您可以使用任务队列+数据库光标进行删除。
任务最多可以执行 10 分钟,这可能足以删除所有实体。但是如果需要更长的时间,您可以获取当前光标位置,并以该光标为参数再次调用任务本身,并从最后一个位置开始处理。
【解决方案2】:
定义您使用的 API。 JDO?盖伊? JPA?您引用了一些 db.delete,但将其标记为 JDO;他们不一样。 JDO 显然提供了 pm.deletePersistentAll(),如果想要更多,您可以使用 Google Mapper API