Excluir dados em massa
Use o serviço de exclusão em massa gerenciado para excluir dados do seu banco de dados. Esse recurso oferece suporte à exclusão de um ou mais grupos de coleções.
Serviço de exclusão em massa gerenciado
Para excluir documentos em massa, use o serviço de exclusão em massa gerenciado. O serviço de exclusão em massa gerenciado do Firestore está
disponível na gcloud
ferramenta de linha de comando e na API REST do Firestore.
Antes de começar
Antes de usar o serviço de exclusão em massa gerenciado, é necessário concluir as seguintes tarefas:
- Para a exclusão de documentos em massa, ative o faturamento para o Google Cloud projeto. Somente Google Cloud projetos com o faturamento ativado podem usar a funcionalidade de exclusão em massa.
-
Verifique se sua conta tem as permissões necessárias para o Firestore. Se você for o proprietário do projeto, sua conta já vai ter 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 Firestore:
Owner,Cloud Datastore Owner, ouCloud Datastore Bulk Admin
- Papéis do Firestore:
Configurar gcloud para seu projeto
É possível iniciar operações de exclusão em massa pelo Google Cloud console ou pela
gcloud ferramenta de linha de comando. Para usar gcloud, configure a ferramenta de linha de comando e conecte-se ao projeto de uma das seguintes maneiras:
Acesse
gcloudno Google Cloud console usando Cloud Shell.Verifique se a
gcloudestá configurada para o projeto correto:gcloud config set project [PROJECT_ID]
Excluir dados com o serviço de exclusão em massa gerenciado
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, embora os resultados possam variar de acordo com o progresso feito. 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
--collection-ids flag.
A operação exclui apenas os grupos de coleções com os IDs fornecidos.
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]
Gerenciar operações de exclusão em massa
Depois de iniciar uma operação de exclusão em massa, o 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:
workEstimatedmostra o número total estimado de bytes e documentos que uma operação vai processar. O Firestore poderá omitir essa métrica se não conseguir fazer uma estimativa.workCompletedmostra o número de bytes e documentos processados até o momento. Após a conclusão da operação, o valor mostra o número total de bytes e documentos que foram realmente processados, que pode ser maior 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 execução, 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 gerenciadas
É necessário ativar o faturamento para o Google Cloud projeto 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 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 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. O Firestore não cobra pela leitura ou exclusão de documentos que não são excluídos, como 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 Google Cloud orçamento alertas do até a conclusão. Da mesma forma, leituras e exclusões realizadas durante uma operação de exclusão em massa são aplicadas ao uso do Nível sem custos financeiros após a conclusão da operação. As operações de exclusão em massa não afetam 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.