Manter apenas o valor mais recente
Esta página descreve uma estratégia que lhe permite manter apenas o valor mais recente numa coluna de uma tabela do Bigtable.
Todas as bibliotecas cliente do Cloud Bigtable permitem-lhe usar filtros para ler o valor mais recente, ou célula, numa determinada linha e coluna. No entanto, em alguns casos, pode nunca precisar de ler versões mais antigas dos seus dados. Pode usar uma política de recolha de lixo baseada na versão que especifica que apenas deve manter uma célula numa coluna, mas, uma vez que pode demorar até uma semana para que a recolha de lixo ocorra, na prática, a sua tabela pode conter dados mais antigos que nunca planeia ler.
Para manter apenas o valor mais recente, recomendamos que use uma abordagem de eliminar e, em seguida, escrever para limitar as colunas na tabela a apenas uma célula.
Eliminar e, em seguida, escrever
Para reter apenas um valor numa coluna, pode enviar um pedido que elimine a coluna e, em seguida, a recrie com um novo valor e data/hora numa ação atómica.
O seguinte exemplo de pseudocódigo Java mostra como isto funcionaria. A ordem é importante: a eliminação tem de ocorrer antes da escrita.
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);
Forneça os seguintes dados:
TABLE
: o ID da tabelaCOLUMN_FAMILY
: a família de colunas que contém a colunaCOLUMN_QUALIFIER
: o qualificador da coluna a eliminar e recriarTIMESTAMP
: a nova indicação de tempoVALUE
: o novo valor da coluna
Indicação de tempo de zero
Anteriormente, recomendávamos uma estratégia de enviar sempre gravações com uma data/hora de 0. Ainda pode usar essa abordagem, mas, como as indicações de tempo válidas são úteis, recomendamos a abordagem de eliminação e, em seguida, escrita.
Se definir a data/hora de uma célula como 0 ou qualquer valor inferior à hora atual em milissegundos e também usar uma política de recolha de lixo baseada na idade, a célula pode ser eliminada na próxima vez que a recolha de lixo ocorrer.
O que se segue?
- Leia a vista geral dos pedidos de escrita.
- Veja exemplos adicionais de pedidos de escrita.
- Explore a documentação de referência do cliente do Cloud Bigtable para Java.