Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Gerencie a retenção de dados com políticas de TTL

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Esta página descreve como usar o Console do Google Cloud Platform e a CLI do Google Cloud para configurar políticas de vida útil (TTL). Antes de ler esta página, você deve entender o modelo de dados do Cloud Firestore .

Visão geral do tempo de vida

Use políticas de vida útil (TTL) para remover automaticamente dados obsoletos de seus bancos de dados. Uma política TTL designa um determinado campo como o tempo de expiração para documentos em um determinado grupo de coleta. Com o TTL, você pode diminuir os custos de armazenamento limpando dados obsoletos. Os dados geralmente são excluídos em até 72 horas após a data de expiração.

Preços

As operações de exclusão TTL contam para os custos de exclusão de documentos. Para preços de operações de exclusão, consulte preços do Cloud Firestore .

Limites e restrições

  • Apenas um campo por grupo de coleta pode ser marcado como um campo TTL.
  • Um total de 200 configurações de nível de campo são permitidas. Uma configuração de campo pode conter várias configurações para o mesmo campo. Por exemplo, uma isenção de indexação de campo único e uma política TTL no mesmo campo contam como uma configuração de campo em relação ao limite.

exclusão de TTL

Observe os seguintes comportamentos-chave da exclusão orientada por TTL:

  • A exclusão por TTL não é um processo instantâneo. Documentos expirados continuam aparecendo em consultas e solicitações de pesquisa até que o processo TTL realmente os exclua. A TTL troca a pontualidade de exclusão pelo benefício do custo total de propriedade reduzido para exclusões. Os dados geralmente são excluídos em até 72 horas após a data de expiração.

  • A exclusão de um documento por meio de TTL não exclui as subcoleções desse documento.

  • A aplicação de uma política TTL em um grupo de coleta existente resulta em uma exclusão em massa de todos os dados que expiraram de acordo com a nova política TTL. Observe que essa exclusão em massa também não é instantânea e depende da quantidade de dados existentes para esse grupo de coleta.

  • O TTL não exclui necessariamente os documentos na mesma ordem de seus carimbos de data e hora de expiração.

  • As exclusões não são feitas transacionalmente. Documentos com o mesmo tempo de expiração não são necessariamente excluídos ao mesmo tempo. Se você precisar desse comportamento, execute as exclusões usando uma biblioteca cliente.

  • O Cloud Firestore sempre respeitará o campo TTL mais recente para determinar a expiração. Por exemplo, se um documento expirado, mas ainda não excluído, tiver seu campo TTL atualizado para uma data posterior, o documento não expirará e a nova data será usada.

  • O TTL foi projetado para minimizar o impacto em outras atividades do banco de dados. Exclusões conduzidas por TTL são tratadas com uma prioridade mais baixa. Outras estratégias também estão em vigor para suavizar picos de tráfego de exclusões acionadas por TTL.

  • A exclusão por meio de TTL envia notificações por push para ouvintes de instantâneos ativos e aciona os acionadores do Cloud Functions Cloud Firestore.

Campos e índices TTL

Um campo TTL pode ser indexado ou não indexado. No entanto, como um campo TTL é um registro de data e hora, a indexação do campo pode afetar o desempenho em taxas de tráfego mais altas. A indexação de um campo de carimbo de data/hora pode criar pontos de acesso, o que é contra as práticas recomendadas. Os pontos de acesso são altas taxas de leitura, gravação e exclusão em um intervalo estreito de documentos.

Por padrão, o Cloud Firestore cria um índice de campo único para todos os campos. Você pode criar uma isenção de índice de campo único para desabilitar índices em um campo TTL.

Permissões

O principal que configura uma política TTL requer a seguinte permissão no projeto:

  • A exibição de políticas TTL requer as permissões datastore.indexes.list e datastore.indexes.get .
  • A modificação de políticas TTL requer a permissão datastore.indexes.update .
  • A verificação do status das operações TTL requer datastore.operations.list e datastore.operations.get .

Para funções que atribuem essas permissões, consulte Funções de gerenciamento de identidade e acesso do Cloud Firestore .

Antes de você começar

Antes de usar a CLI gcloud para gerenciar políticas TTL, use o comando gcloud components update para atualizar os componentes para a versão mais recente disponível:

gcloud components update

Criar uma política de TTL

Ao criar uma política TTL, você designa um campo de documento como o tempo de expiração para documentos em um grupo de coleta.

O TTL usa um campo especificado para identificar documentos elegíveis para exclusão. Este campo TTL deve ser do tipo Date and time . Você pode selecionar um campo que já existe ou pode designar um campo que planeja adicionar posteriormente. O valor do campo TTL pode ser um tempo no futuro, agora ou no passado. Se o valor for tempo no passado, o documento estará imediatamente qualificado para exclusão.

Por exemplo, você pode criar uma política TTL com o campo expireAt que você adiciona aos documentos existentes.

Siga as etapas abaixo para criar uma política de TTL:

Console do Google Cloud

  1. Acesse a página Tempo de vida do Cloud Firestore no Console do Google Cloud Platform.

    Vá para a página Tempo de vida

  2. Clique em Criar política .

  3. Insira um nome de grupo de coleta e um nome de campo de carimbo de data/hora.

  4. Clique em Criar .

O console retorna à página Time-to-live . Se a operação for iniciada com êxito, a página incluirá uma entrada na tabela de políticas TTL. Em caso de falha, a página exibe uma mensagem de erro.

gcloud

Use o comando firestore fields ttls update para configurar uma política de TTL. Adicione a sinalização --async para evitar que a CLI gcloud aguarde a conclusão da operação.

gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl

Mesmo em um banco de dados vazio, pode levar dez minutos ou mais para habilitar uma política TTL. Depois de iniciar uma operação, fechar o terminal não cancela a operação.

Ver políticas de TTL

Siga as etapas abaixo para visualizar as políticas de TTL e seus status.

Console do Google Cloud

Acesse a página Tempo de vida do Cloud Firestore no Console do Google Cloud Platform.

Vá para a página Tempo de vida

O console lista as políticas TTL para seu banco de dados e inclui o status de cada política.

gcloud

Use o comando firestore fields ttls list para configurar uma política TTL. O comando a seguir lista todas as políticas TTL.

gcloud firestore fields ttls list 

Para listar as políticas TTL em um grupo de coleta específico, use o seguinte:

gcloud firestore fields ttls list  --collection-group=collection_group_name

Ver detalhes da operação

Você pode usar a CLI gcloud para ver mais detalhes sobre uma política TTL que está no estado CREATING .

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

gcloud firestore operations list

A resposta inclui uma estimativa do progresso da operação.

Desabilitar uma política TTL

Siga as etapas abaixo para desativar uma política TTL.

Console do Google Cloud

  1. Acesse a página Tempo de vida do Cloud Firestore no Console do Google Cloud Platform.

    Vá para a página Tempo de vida

  2. Na tabela de política TTL, localize a linha para a política TTL. Dentro desta linha da tabela, clique no botão Excluir (lixeira).

  3. Confirme clicando em Excluir .

O console retorna à página Time-to-live . Em caso de sucesso, o Cloud Firestore remove a política TTL da tabela.

gcloud

Use o comando firestore fields ttls update para configurar uma política de TTL. Adicione a sinalização --async para evitar que a CLI gcloud aguarde a conclusão da operação.

gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl

Monitorar exclusões de TTL

Você pode usar o Cloud Monitoring para visualizar métricas sobre exclusões orientadas por TTL. O Cloud Firestore fornece as seguintes métricas para TTL:

Contagem de exclusão de tempo de vida

Contagem total de documentos excluídos por políticas de vida útil (TTL).

Expiração do tempo de vida para atrasos de exclusão

O tempo decorrido entre o momento em que um documento expirou sob uma política de vida útil (TTL) e o momento em que foi realmente excluído.

Para configurar um painel com métricas do Cloud Firestore, consulte gerenciar painel personalizado e adicionar widgets de painel .