Como agregar valores no momento da gravação

Este documento oferece uma visão geral das maneiras de agregar dados do Bigtable no momento da gravação. Antes de ler este documento, confira a visão geral do Bigtable.

Muitos aplicativos rastreiam métricas operacionais que impulsionam casos de uso, incluindo relatórios no app, recomendações em tempo real e limitação de taxa. Confira alguns exemplos dessas métricas operacionais:

  • Usuários ativos por semana
  • Número de impressões de anúncio
  • Visualizações ou compartilhamentos de conteúdo social
  • Número de streams de mídia

É possível usar essas métricas em aplicativos voltados ao usuário ou como entradas para modelos de machine learning. O uso delas geralmente exige baixa latência e alta capacidade de processamento. Como o cálculo desses tipos de métricas no momento da consulta é impraticável em grande escala, a pré-agregação durante a ingestão de dados é a abordagem preferida para sistemas em tempo real.

O Bigtable oferece várias maneiras de agregar dados no momento da gravação, incluindo tipos de dados replicados sem conflitos, solicitações ReadModifyWriteRow e visualizações materializadas contínuas.

A agregação de dados do Bigtable no momento da gravação elimina a necessidade de software de extração, transformação e carregamento (ETL) ou de processamento de streaming para agregar os dados antes ou depois de gravá-los no Bigtable. Se o aplicativo usa o Dataflow para agregar dados de streaming antes de gravá-los no Bigtable, é possível enviar os dados diretamente para agregar células no Bigtable.

Tipos de dados replicados sem conflitos

O Bigtable permite 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 você estiver migrando para o Bigtable de bancos de dados como Apache Cassandra, Redis ou Valkey, estruturas semelhantes nesses sistemas serão chamadas de contadores.

A tabela a seguir lista as operações compatíveis e como os valores recém-gravados são tratados.


Operação

Descrição

Soma

O valor da célula é substituído pela soma do valor recém-adicionado e do valor atual da célula.

Mínimo

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

Máximo

O valor da célula é substituído pelo valor mais alto entre o valor recém-adicionado e o valor atual da célula.

HyperLogLog

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

É possível ler valores HLL usando a biblioteca Zetasketch.

Os tipos de mutação que podem ser enviados para criar e atualizar células agregadas são AddToCell e MergeToCell.

Para começar a contar no Bigtable, consulte o guia de início rápido Criar e atualizar contadores no Bigtable.

Ler e gravar

Outra maneira de agregar dados no momento da gravação é usando uma ReadModifyWriteRow que permite manipular o valor de uma célula incrementando ou anexando ao valor transacionalmente. Para mais informações sobre quando usar essa abordagem, consulte Anexos.

Visualizações materializadas contínuas

Uma visualização materializada contínua é um resultado pré-computado de uma consulta SQL que agrega dados em uma tabela de origem. A visualização processa continuamente os dados à medida que são ingeridos na tabela de origem e agrupa as atualizações. Isso inclui atualizações e exclusões. O uso de visualizações materializadas contínuas pode aumentar o desempenho e a eficiência. Para mais informações, consulte Visualizações materializadas contínuas.

A seguir