У меня есть приложение, в котором есть только одна модель с двумя 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 True / False.
Почему у меня так много сущностей? Потому что хранилище данных содержит все зарегистрированные домены (на данный момент .com). Я не могу выполнять запросы Whois в каждом случае из-за TOS и задержки. Поэтому я сначала заполняю хранилище данных целым файлом зоны, а затем ежедневно добавляю / удаляю зарегистрированные / удаленные домены ... Проблема в том, что это довольно большие количества, и мне нужно найти способ снизить затраты и добавлять / удалять 2 * ~ 100000 доменов в день.
Примечание: вычисления практически не выполняются, поскольку запрос доступности просто проверяет, существует ли домен в хранилище данных!
1: 'Для любого один запрос GQL. ' (http://code.google.com/appengine/docs/python/datastore/gqlreference.html)