У меня есть приложение, которое имеет только одну модель с двумя свойствами StringProperties.
Начальное количество объектов составляет около 100 миллионов (я буду загружать их с помощью массового загрузчика).
Каждые 24часов я должен удалить около 70000 сущностей и добавить 100000 сущностей.Мой вопрос сейчас: каков наилучший способ удаления этих объектов?
Есть ли способ избежать выборки объекта перед его удалением?Мне не удалось найти способ сделать что-то вроде:
DELETE from xxx WHERE foo1 IN ('bar1', 'bar2', 'bar3', ...)
Я понимаю, что ядро приложения предлагает предложение IN (хотя и с максимальной длиной 30 (из-за максимального количества отдельных запросов на один запрос GQL) 1 )), но для меня это все еще кажется странным, поскольку мне придется получить x-сущности, а затем удалить их снова (делая два вызова RPC для каждой сущности).
Примечание: сущностьследует игнорировать, если не найден.
РЕДАКТИРОВАТЬ: Добавлена информация о проблеме
Эти объекты являются просто доменами.Первая строка - это SLD, а вторая - TLD (без поддоменов).Приложение может быть использовано для предварительной обработки запроса, например: http://[. ..] / available / stackoverflow.com.Приложение вернет истинный / ложный объект json.
Почему у меня так много сущностей?Потому что хранилище данных содержит все зарегистрированные домены (пока что .com).Я не могу выполнить запрос whois в каждом случае из-за TOS и задержки.Поэтому я сначала заполняю хранилище данных целым файлом зоны, а затем ежедневно добавляю / удаляю домены, которые были зарегистрированы / удалены ... Проблема в том, что это довольно большие количества, и мне нужно найти способ снизить затратыи добавьте / удалите 2 * ~ 100000 доменов в день.
Примечание: вычисления вряд ли будут выполняться, поскольку запрос доступности просто проверяет, существует ли домен в хранилище данных!
1 : «Для каждого отдельного запроса GQL допускается не более 30 запросов к хранилищу данных».(http://code.google.com/appengine/docs/python/datastore/gqlreference.html)