Массовое удаление данных

Это относится только к версии Cloud Firestore Enterprise.

Используйте службу управляемого массового удаления для удаления данных из вашей базы данных. Эта функция поддерживает удаление данных из одной или нескольких групп коллекций.

На этой странице описано, как удалять документы массово с помощью управляемой службы массового удаления. Управляемая служба массового удаления Cloud Firestore с поддержкой MongoDB доступна через инструмент командной строки gcloud и REST API Cloud Firestore .

Прежде чем начать

Прежде чем использовать службу управляемого массового удаления, необходимо выполнить следующие задачи:

  1. Включите оплату для вашего проекта Google Cloud . Функция массового удаления доступна только для проектов Google Cloud с включенной оплатой.
  2. Убедитесь, что ваша учетная запись имеет необходимые разрешения для работы с Cloud Firestore с поддержкой MongoDB. Если вы являетесь владельцем проекта, ваша учетная запись имеет необходимые разрешения. В противном случае, следующие роли предоставляют необходимые разрешения для операций массового удаления:

Настройте gcloud для своего проекта.

Вы можете инициировать операции массового удаления через консоль Google Cloud или инструмент командной строки gcloud . Для использования gcloud настройте инструмент командной строки и подключитесь к своему проекту одним из следующих способов:

Массовое удаление данных

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

Массовое удаление определенных групп коллекций.

gcloud

Для массового удаления определенных групп коллекций используйте флаг --collection-ids . Операция удалит только группы коллекций с указанными идентификаторами.

gcloud firestore bulk-delete \
--collection-ids=[COLLECTION_GROUP_ID_1_OR_KIND_1],[COLLECTION_GROUP_ID_2_OR_KIND_2],[SUBCOLLECTION_GROUP_ID_1_OR_KIND_3] \
--database=[DATABASE]

Управление операциями массового удаления

После запуска операции массового удаления Cloud Firestore с поддержкой MongoDB присваивает операции уникальное имя. Вы можете использовать это имя для удаления, отмены или проверки статуса операции.

Названия операций начинаются с префикса projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/ , например:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

Однако при указании имени операции для команд describe , cancel и delete префикс можно опустить.

Список всех операций массового удаления

gcloud

Используйте команду operations list , чтобы просмотреть все запущенные и недавно завершенные операции, включая операции массового удаления:

gcloud firestore operations list

Проверить состояние операции

gcloud

Используйте команду operations describe , чтобы отобразить статус операции массового удаления.

gcloud firestore operations describe [OPERATION_NAME]

Оцените время выполнения.

Запрос статуса длительной операции возвращает метрики workEstimated и workCompleted . Каждая из этих метрик возвращается как в количестве байтов, так и в количестве документов:

  • workEstimated отображает предполагаемое общее количество байтов и документов, которые будет обработана операция. Cloud Firestore с поддержкой MongoDB может не отображать этот показатель, если не может дать приблизительную оценку.

  • workCompleted отображает количество удаленных байтов и документов на данный момент. После завершения операции значение показывает общее количество фактически обработанных байтов и документов, которое может быть больше значения workEstimated .

Разделите workCompleted на workEstimated . Это приблизительная оценка прогресса. Эта оценка может быть неточной, поскольку зависит от задержки сбора статистических данных.

Отменить операцию

gcloud

Используйте команду operations cancel , чтобы остановить выполняющуюся операцию:

gcloud firestore operations cancel [OPERATION_NAME]

Отмена выполняющейся операции не отменяет её. Отменённая операция массового удаления не восстанавливает удалённые документы.

Удалить операцию

Используйте команду gcloud firestore operations delete , чтобы удалить завершенную операцию из списка последних операций. Чтобы отменить выполняющуюся операцию, используйте команду отмены предыдущей операции.

gcloud firestore operations delete [OPERATION_NAME]

Выставление счетов и ценообразование для операций массового удаления

Для использования сервиса управляемого массового удаления необходимо включить выставление счетов для вашего проекта Google Cloud .

Обратите внимание, что Cloud Firestore с поддержкой MongoDB взимает плату за фактически выполненную работу. Если операция отменена или завершилась неудачей из-за ошибки пользователя, с вас будет взиматься плата за достигнутый прогресс. Cloud Firestore с поддержкой MongoDB не будет взимать плату за чтение или удаление документов, которые в конечном итоге не были удалены, например, документов, измененных после начала операции удаления. Стоимость будет начислена в день завершения операции.

Операции массового удаления не вызывают срабатывания оповещений о бюджете Google Cloud до их завершения. Аналогично, операции чтения и удаления, выполненные во время операции массового удаления, применяются к использованию вашего бесплатного уровня после завершения операции. Операции массового удаления не влияют на использование, отображаемое в разделе «Использование» консоли.

Просмотреть стоимость массового удаления

При операциях массового удаления к оплачиваемым операциям применяется метка goog-firestoremanaged:bulkdelete . На странице отчетов Cloud Billing вы можете использовать эту метку для просмотра затрат, связанных с операциями массового удаления.