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 tipos.
Esta página descreve como excluir entidades em massa usando o serviço de exclusão em massa gerenciado. O serviço de exclusão em massa gerenciado do modo Datastore 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 em massa de documentos, ative o faturamento para o Google Cloud projeto. Somente Google Cloud projetos do com faturamento ativado podem usar a funcionalidade de exclusão em massa.
-
Verifique se a conta tem as permissões necessárias para o modo Datastore. 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 modo Datastore:
Owner,Cloud Datastore Owner, ouCloud Datastore Bulk Admin
- Papéis do modo Datastore:
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 em massa
Uma operação de exclusão em massa primeiro encontra todas as entidades aplicáveis no seu banco de dados e as exclui em lotes. Você ainda pode consultar ou ler essas entidades, mas os resultados podem variar com base no progresso. A exclusão em massa não exclui entidades adicionadas ou modificadas após o início da operação.
Excluir em massa tipos específicos
gcloud
Para excluir em massa tipos específicos, use a
--collection-ids flag.
A flag usa a terminologia do Firestore, mas um ID de grupo de coleções é o mesmo que um ID de tipo. A operação exclui apenas os tipos com os IDs fornecidos.
Um tipo inclui todas as entidades e entidades aninhadas (em qualquer caminho) com os tipos especificados.
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 modo Datastore atribui à operação um nome exclusivo. 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 entidades que uma operação processará. O modo Datastore pode omitir essa métrica se não puder fazer uma estimativa.workCompletedmostra o número de bytes e entidades excluídos até o momento. Após a conclusão da operação, o valor mostra o número total de bytes e entidades 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 as entidades excluídas.
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 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 entidades de acordo com as taxas listadas em Preços do modo Datastore. As operações de exclusão em massa geram uma leitura de entrada de índice por entidade encontrada e uma operação de exclusão por entidade excluída. É 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 entidades, você vai receber uma cobrança por 2 leituras de entidades e 1.500 exclusões de entidades.O modo Datastore 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 modo Datastore não cobra pela leitura ou exclusão de entidades que não são excluídas, como entidades que são modificadas 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.
Outra opção
O Dataflow é um serviço gerenciado para desenvolver e executar fluxos de trabalho de processamento de dados que também podem excluir dados em massa. Dataflow fornece um modelo de exclusão do Datastore que pode ser usado para excluir entidades selecionadas por uma GQL consulta.
Para mais informações, consulte a documentação do Dataflow sobre como executar o modelo de exclusão em massa do Datastore.
Se o caso de uso envolver retenção de dados, consulte Gerenciar a retenção de dados com políticas de TTL.