Как выполнить массовое удаление из Google App Engien Datastore - PullRequest
0 голосов
/ 23 декабря 2011

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

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

Ответы [ 3 ]

3 голосов
/ 23 декабря 2011

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

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

0 голосов
/ 13 апреля 2018

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

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

0 голосов
/ 23 декабря 2011

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

...