Elimine dados em massa

Use o serviço de eliminação em massa gerido para eliminar dados da sua base de dados. Esta funcionalidade suporta a eliminação em um ou mais grupos de recolha.

Esta página descreve como eliminar documentos em massa através do serviço de eliminação em massa gerido. O serviço de eliminação em massa gerido do Firestore está disponível através da ferramenta de linha de comandos gcloud e da API REST do Firestore.

Antes de começar

Antes de poder usar o serviço de eliminação em massa gerido, tem de concluir as seguintes tarefas:

  1. Ative a faturação para o seu projeto Google Cloud . Apenas os projetos Google Cloud com a faturação ativada podem usar a funcionalidade de eliminação em massa.
  2. Certifique-se de que a sua conta tem as autorizações necessárias para o Firestore. Se for o proprietário do projeto, a sua conta tem as autorizações necessárias. Caso contrário, as seguintes funções concedem as autorizações necessárias para operações de eliminação em massa:

    • Funções do Firestore: Owner, Cloud Datastore Owner ou Cloud Datastore Bulk Admin

Configure o gcloud para o seu projeto

Pode iniciar operações de eliminação em massa através da Google Cloud consola ou da ferramenta de linha de comandos gcloud. Para usar o gcloud, configure a ferramenta de linha de comandos e ligue-se ao seu projeto de uma das seguintes formas:

Elimine dados em massa

Uma operação de eliminação em massa encontra primeiro todos os documentos aplicáveis na sua base de dados e elimina-os em lotes. Pode continuar a consultar ou ler estes documentos, embora os resultados possam variar com base no progresso realizado. A eliminação em massa não elimina documentos adicionados ou modificados após o início da operação.

Elimine em massa grupos de coleções específicos

gcloud

Para eliminar em massa grupos de coleções específicos, use a flag --collection-ids. A operação elimina apenas os grupos de recolha com os IDs indicados.

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]

Faça a gestão de operações de eliminação em massa

Depois de iniciar uma operação de eliminação em massa, o Firestore atribui um nome único à operação. Pode usar o nome da operação para eliminar, cancelar ou verificar o estado da operação.

Os nomes das operações têm o prefixo projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, por exemplo:

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

No entanto, pode omitir o prefixo quando especificar um nome de operação para os comandos describe, cancel e delete.

Apresente todas as operações de eliminação em massa

gcloud

Use o comando operations list para ver todas as operações em execução e concluídas recentemente, incluindo operações de eliminação em massa:

gcloud firestore operations list

Verifique o estado da operação

gcloud

Use o comando operations describe para mostrar o estado de uma operação de eliminação em massa.

gcloud firestore operations describe [OPERATION_NAME]

Estime o tempo de conclusão

Um pedido do estado de uma operação de longa duração devolve as métricas workEstimated e workCompleted. Cada uma destas métricas é devolvida no número de bytes e no número de documentos:

  • workEstimated mostra o número total estimado de bytes e documentos que uma operação vai processar. O Firestore pode omitir esta métrica se não conseguir fazer uma estimativa.

  • workCompleted mostra o número de bytes e documentos eliminados até agora. Após a conclusão da operação, o valor mostra o número total de bytes e documentos que foram efetivamente processados, o que pode ser superior ao valor de workEstimated.

Divida workCompleted por workEstimated para uma estimativa aproximada do progresso. Esta estimativa pode ser imprecisa, uma vez que depende da recolha de estatísticas atrasadas.

Cancele uma operação

gcloud

Use o comando operations cancel para parar uma operação em curso:

gcloud firestore operations cancel [OPERATION_NAME]

O cancelamento de uma operação em execução não anula a operação. Uma operação de eliminação em massa cancelada não recupera os documentos eliminados.

Elimine 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]

Faturação e preços para operações de eliminação em massa

Tem de ativar a faturação para o seu Google Cloud projeto antes de usar o serviço de eliminação em massa gerido.

As operações de eliminação em massa são cobradas por leituras e eliminações de documentos às taxas indicadas nos preços do Firestore. As operações de eliminação em massa incorrem numa leitura de entrada de índice por documento encontrado e numa operação de eliminação por documento eliminado. É-lhe cobrada uma operação de leitura para até 1000 entradas de índice lidas. Por exemplo, para uma operação de eliminação em massa que eliminou 1500 documentos, são-lhe cobradas 2 leituras de documentos e 1500 eliminações de documentos.

Tenha em atenção que o Firestore cobra o trabalho real feito. Se a operação for cancelada ou falhar devido a um erro do utilizador, é-lhe cobrado o progresso realizado. O Firestore não cobra leituras nem eliminações dos documentos que não são eliminados, como os documentos que são modificados após o início da operação de eliminação. O custo é atribuído no dia da conclusão da operação.

As operações de eliminação em massa não acionam os alertas de Google Cloud orçamento até à conclusão. Da mesma forma, as leituras e as eliminações realizadas durante uma operação de eliminação em massa são aplicadas à sua utilização do nível gratuito após a conclusão da operação. As operações de eliminação em massa não afetam a utilização apresentada na secção de utilização da consola.

Veja os custos de eliminação em massa

As operações de eliminação em massa aplicam a etiqueta goog-firestoremanaged:bulkdelete às operações faturadas. Na página de relatórios do Cloud Billing, pode usar esta etiqueta para ver os custos relacionados com operações de eliminação em massa.

Práticas recomendadas

Evite ignorar dados eliminados, o que pode tornar as consultas mais lentas.