Agregação de valores no momento da gravação

Este documento fornece uma vista geral das formas como pode agregar os seus dados do Bigtable no momento da escrita. Antes de ler este documento, certifique-se de que conhece a vista geral do Bigtable.

Muitas aplicações monitorizam métricas operacionais que geram exemplos de utilização, incluindo relatórios na app, recomendações em tempo real e limites de taxa. Seguem-se alguns exemplos de métricas operacionais:

  • Utilizadores ativos semanalmente
  • Número de impressões de anúncios
  • Visualizações ou partilhas de conteúdo social
  • Número de streams de multimédia

Pode usar estas métricas em aplicações viradas para o utilizador ou como entradas para modelos de aprendizagem automática, e as respetivas utilizações requerem normalmente baixa latência e elevado débito. Uma vez que o cálculo destes tipos de métricas no momento da consulta é impraticável à escala, a pré-agregação durante a ingestão de dados é a abordagem preferencial para sistemas em tempo real.

O Bigtable oferece várias formas de agregar dados no momento da escrita, incluindo tipos de dados replicados sem conflitos, pedidos ReadModifyWriteRow e vistas materializadas contínuas.

A agregação dos seus dados do Bigtable no momento da escrita permite-lhe evitar a necessidade de usar software de extração, transformação e carregamento (ETL) ou de processamento de streaming para agregar os seus dados antes ou depois de os escrever no Bigtable. Por exemplo, se a sua aplicação publicou mensagens no Pub/Sub anteriormente e, em seguida, usou o Dataflow para ler as mensagens e agregar os dados antes de os escrever no Bigtable, pode, em alternativa, enviar os dados diretamente para agregar células no Bigtable.

Tipos de dados replicados sem conflitos

O Bigtable permite-lhe criar famílias de colunas que contêm apenas células do tipo aggregate. As células agregadas são estruturas de tipo de dados replicados sem conflitos otimizadas para atualizações incrementais.

Se estiver a migrar para o Bigtable a partir de bases de dados como o Apache Cassandra, o Redis ou o Valkey, as estruturas semelhantes nesses sistemas são denominadas contadores.

A tabela seguinte indica as operações suportadas e como os valores escritos recentemente são processados.


Operação

Descrição

Soma

O valor da célula é substituído pela soma do valor adicionado recentemente e o valor atual da célula.

Mínimo

O valor da célula é substituído pelo valor mais baixo entre o valor adicionado recentemente e o valor da célula atual.

Máximo

O valor da célula é substituído pelo valor mais elevado entre o valor adicionado recentemente e o valor da célula atual.

HyperLogLog

O valor escrito é adicionado a um conjunto probabilístico de todos os valores adicionados desde a reposição mais recente. O valor da célula representa o estado desse conjunto. Para mais informações gerais sobre o algoritmo HLL, consulte o artigo HyperLogLog.

Pode ler valores HLL através da biblioteca Zetasketch.

Os tipos de mutações que pode enviar para criar e atualizar células agregadas são AddToCell e MergeToCell.

Para começar a usar a contagem no Bigtable, consulte o início rápido Crie e atualize contadores no Bigtable.

Ler e, em seguida, escrever

Outra forma de agregar os dados no momento da gravação é usar um pedido ReadModifyWriteRow, que lhe permite manipular o valor de uma célula incrementando ou anexando ao valor transacionalmente. Para mais informações sobre quando usar esta abordagem, consulte a secção Anexos.

Vistas materializadas contínuas

Uma vista materializada contínua é um resultado pré-calculado de uma consulta SQL que agrega dados numa tabela de origem. A vista processa continuamente os dados à medida que são carregados na tabela de origem e agrupa as atualizações. Isto inclui atualizações e eliminações. A utilização de vistas materializadas contínuas pode aumentar o desempenho e a eficiência. Para mais informações, consulte o artigo Vistas materializadas contínuas.

O que se segue?