Как выполнить массовое удаление из Google App Engien Datastore

Мне нужно удалить массовые записи из хранилища данных, я перебрал все предыдущие ссылки, но все только что говорили о получении сущностей из хранилища данных и последующем их удалении, проблема в моем случае в том, что у меня есть около 80 КБ сущностей, и чтение выполняется по времени всякий раз, когда я пытаюсь сделать это, используя метод datastore db.delete().

Кто-нибудь здесь случайно знает метод, более близкий к SQL, для массового удаления?

3 ответа

Вы можете использовать Task Queue + DB Cursor для удаления.

Задание может быть выполнено до 10 минут, вероятно, достаточно времени, чтобы удалить все объекты. Но если это займет больше времени, вы можете получить текущую позицию курсора и еще раз вызвать саму задачу с этим курсором в качестве параметра, и начать обработку с последней позиции.

Определите, какой API вы используете. СДО? GAE? JPA? Вы ссылаетесь на некоторый db.delete, но помечаете это как JDO; Они не то же самое. JDO, очевидно, предоставляет pm.deletePersistentAll(), и, если вам нужно больше, вы можете использовать Google Mapper API

Вы можете использовать Cloud Dataflow для массового удаления объектов в хранилище данных. Вы можете использовать GQL-запрос, чтобы выбрать объекты для удаления:

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

Другие вопросы по тегам