Você pode usar o serviço de exclusão em massa gerenciado do Cloud Firestore para excluir dados do seu banco de dados. Esse recurso oferece suporte à exclusão de um ou mais grupos de coleções.
Esta página descreve como excluir documentos Cloud Firestore em massa usando
o serviço de exclusão em massa gerenciado. O
serviço de exclusão em massa gerenciado do Cloud Firestore está disponível na
ferramenta de linha de comando gcloud
e na API Cloud Firestore (REST, RPC).
Antes de começar
Antes de usar o serviço de exclusão em massa gerenciado, é necessário concluir as seguintes tarefas:
- Ative o faturamento para o projeto do Google Cloud. Somente projetos do Google Cloud com faturamento ativado podem usar a funcionalidade de exclusão em massa.
-
Verifique se a conta tem as permissões necessárias para o Cloud Firestore. Se você é o proprietário do projeto, isso significa que sua conta tem as permissões necessárias. Caso contrário, os seguintes papéis concedem as permissões necessárias para operações de exclusão em massa:
- Papéis do Cloud Firestore:
Owner
,Cloud Datastore Owner
ouCloud Datastore Bulk Admin
- Papéis do Cloud Firestore:
Configurar gcloud
para seu projeto
É possível iniciar operações de exclusão em massa pelo console do Google Cloud ou
pela ferramenta de linha de comando gcloud
. Para usar gcloud
, configure a ferramenta de linha de comando
e conecte-se ao seu projeto de uma das seguintes maneiras:
Acesse
gcloud
no console do Google Cloud usando Cloud Shell.Verifique se a
gcloud
está configurada para o projeto correto:gcloud config set project [PROJECT_ID]
Excluir dados em massa
Uma operação de exclusão em massa primeiro encontra todos os documentos aplicáveis no seu banco de dados e os exclui em lotes. Você ainda pode consultar ou ler esses documentos, mas os resultados podem variar com base no progresso. A exclusão em massa não exclui documentos adicionados ou modificados após o início da operação.
Excluir em massa grupos de coleções específicos
gcloud
Para excluir em massa grupos de coleções específicos, use a flag --collection-ids
. A operação exclui apenas
os grupos de coleções com os IDs fornecidos. Um grupo de coleções
inclui todos os documentos e documentos aninhados (em qualquer caminho) com os grupos de coleções
especificados.
gcloud beta 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]
Gerenciar operações de exclusão em massa
Depois de iniciar uma operação de exclusão em massa, o Cloud Firestore atribui um nome exclusivo a ela. Use o nome da operação para excluir, cancelar ou verificar o status dela.
Os nomes das operações são prefixados com projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
,
por exemplo:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
No entanto, é possível omitir o prefixo ao especificar um nome de operação para os comandos describe
, cancel
e delete
.
Listar todas as operações de exclusão em massa
gcloud
Use o comando operations list
para conferir todas as operações em execução e concluídas recentemente, incluindo as de exclusão em massa:
gcloud firestore operations list
Verificar o status da operação
gcloud
Use o comando operations describe
para mostrar o status de uma operação de exclusão em massa.
gcloud firestore operations describe [OPERATION_NAME]
Estimar o tempo de conclusão
Uma solicitação para o status de uma operação de longa duração retorna as métricas workEstimated
e workCompleted
. Cada uma dessas métricas é retornada no número de bytes e no número de entidades:
workEstimated
mostra o número total estimado de bytes e documentos que uma operação processará. O Cloud Firestore pode omitir essa métrica se não puder fazer uma estimativa.workCompleted
mostra o número de bytes e documentos processados até o momento. Após a conclusão da operação, o valor mostrará o número total de bytes e documentos que foram realmente processados, o que pode ser maior do que o valor deworkEstimated
.
Divida workCompleted
por workEstimated
para ter uma estimativa aproximada do andamento. A estimativa pode ser imprecisa, porque ela depende da coleção de estatísticas em atraso.
Cancelar uma operação
gcloud
Use o comando operations cancel
para interromper uma operação em andamento:
gcloud firestore operations cancel [OPERATION_NAME]
Cancelar uma operação em execução não desfaz a operação. Uma operação de exclusão em massa cancelada não recupera os documentos excluídos.
Excluir uma operação
Use o comando gcloud firestore operations delete
para remover
uma operação concluída da lista de operações recentes. Para cancelar uma operação em andamento, use a operação de cancelamento anterior.
gcloud firestore operations delete [OPERATION_NAME]
Faturamento e preços para operações de exclusão em massa
É necessário ativar o faturamento para o projeto do Google Cloud antes de usar o serviço gerenciado de exclusão em massa.
As operações de exclusão em massa são cobradas por leituras e exclusões de documentos de acordo com as taxas listadas em Preços do Cloud Firestore. As operações de exclusão em massa geram uma leitura de entrada de índice por documento encontrado e uma operação de exclusão por documento excluído. É cobrada uma operação de leitura para até 1.000 entradas de índice. Por exemplo, para uma operação de exclusão em massa que excluiu 1.500 documentos, você vai receber uma cobrança por 2 leituras de documentos e 1.500 exclusões de documentos.
O Cloud Firestore cobra pelo trabalho real realizado. Se a operação for cancelada ou falhar devido a um erro do usuário, você vai ser cobrado pelo progresso feito. Cloud Firestore não vai cobrar pela leitura ou exclusão de documentos que não são excluídos (por exemplo, documentos que são modificados após o início da operação de exclusão). O custo será atribuído no dia da conclusão da operação.
As operações de exclusão em massa não acionam os alertas do orçamento do Google Cloud até a conclusão. Da mesma forma, as leituras e exclusões realizadas durante uma operação de exclusão em massa são aplicadas à sua cota/uso sem custo financeiro após a conclusão da operação. As operações de exclusão em massa não vão afetar o uso mostrado na seção de uso do console.
Conferir os custos de exclusão em massa
As operações de exclusão em massa aplicam o rótulo goog-firestoremanaged:bulkdelete
às operações faturadas. Na página de relatórios do Cloud Billing,
é possível usar esse rótulo para conferir os custos relacionados às operações de exclusão em massa.
Práticas recomendadas
Evite pular dados excluídos, o que pode deixar as consultas mais lentas.