Manter apenas o valor mais recente
Esta página descreve uma estratégia que permite manter apenas o valor mais recente em uma coluna de uma tabela do Bigtable.
Todas as bibliotecas de cliente do Cloud Bigtable permitem que você use filtros para ler o valor, ou célula, mais recente em uma determinada linha e coluna. Mas, em alguns casos, é possível que você nunca precise ler as versões mais antigas dos seus dados. É possível usar uma política de coleta de lixo baseada na versão que especifica manter apenas uma célula em uma coluna. Mas, na prática, como pode levar até uma semana para a coleta de lixo, sua tabela pode conter dados mais antigos que você nunca pretende ler.
Para manter apenas o valor mais recente, recomendamos usar uma abordagem de excluir, depois gravar para limitar as colunas na tabela a apenas uma célula.
Excluir, depois gravar
Para reter apenas um valor em uma coluna, envie uma solicitação que a exclua e depois a recrie com um novo valor e carimbo de data/hora em uma ação atômica.
O pseudocódigo em Java a seguir mostra como isso funciona. A ordem é importante: a exclusão precisa ocorrer antes da gravação.
RowMutation mutation = RowMutation.create(TABLE, ROW_KEY)
.deleteCells(COLUMN_FAMILY, COLUMN_QUALIFIER, Range.TimestampRange.unbounded())
.setCell((COLUMN_FAMILY, COLUMN_QUALIFIER, TIMESTAMP, VALUE);
dataClient.mutateRow(mutation);
Preencha o seguinte:
TABLE
: o ID da tabelaCOLUMN_FAMILY
: o grupo de colunas que contém a colunaCOLUMN_QUALIFIER
: o qualificador de coluna a ser excluído e recriadoTIMESTAMP
: o novo carimbo de data/horaVALUE
: o novo valor da coluna
Carimbo de data/hora de zero
Anteriormente, recomendamos uma estratégia de sempre enviar gravações com um carimbo de data/hora de 0. Ainda é possível usar essa abordagem, mas como os carimbos de data/hora válidos são úteis, recomendamos a abordagem de excluir, depois gravar.
Se você definir o carimbo de data/hora de uma célula como 0 ou qualquer valor menor que o horário atual em milissegundos e também usar uma política de coleta de lixo baseada em idade, sua célula poderá ser excluída na próxima vez que a coleta de lixo ocorrer.
A seguir
- Leia a visão geral das solicitações de gravação.
- Veja outros exemplos de solicitações de gravação.
- Conheça a documentação de referência do cliente do Cloud Bigtable para Java.