Como agregar valores no momento da gravação
Este documento apresenta uma visão geral das maneiras de agregar seus 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 de métricas operacionais:
- Usuários ativos semanalmente
- Número de impressões de anúncios
- 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 aprendizado de máquina. O uso delas geralmente exige baixa latência e alto throughput. Como a computação 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 dos dados do Bigtable no momento da gravação evita a necessidade de usar softwares de extração, transformação e carregamento (ETL) ou de processamento de streaming para agregar seus dados antes ou depois de gravar no Bigtable. Por exemplo, se o aplicativo publicou mensagens no Pub/Sub anteriormente e usou o Dataflow para ler as mensagens e agregar os dados antes de gravar no Bigtable, é possível enviar os dados diretamente para células agregadas 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 o Apache Cassandra, Redis ou Valkey, estruturas semelhantes nesses sistemas são chamadas de contadores.
A tabela a seguir lista as operações com suporte e como os valores recém-gravados são processados.
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 informações mais gerais sobre o algoritmo HLL, consulte HyperLogLog. É possível ler valores de 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 seus dados no momento da gravação é usando uma solicitação ReadModifyWriteRow, que permite manipular o valor de uma célula incrementando ou anexando ao valor de forma transacional. Para mais informações sobre quando usar essa abordagem, consulte Apêndices.
Visualizações materializadas contínuas
Uma visualização materializada contínua é um resultado pré-calculado de uma consulta SQL que agrega dados em uma tabela de origem. A visualização processa continuamente os dados conforme eles 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 a performance e a eficiência. Para mais informações, consulte Visualizações materializadas contínuas.
A seguir
- Confira exemplos de código que mostram como adicionar um valor a uma célula de agregação.
- Revise os conceitos relacionados ao design de esquema.