Aggregazione dei valori al momento della scrittura

Questo documento fornisce una panoramica dei modi in cui puoi aggregare i dati di Bigtable al momento della scrittura. Prima di leggere questo documento, assicurati di conoscere la panoramica di Bigtable.

Molte applicazioni monitorano le metriche operative che generano casi d'uso, tra cui report in-app, consigli in tempo reale e limitazione della frequenza. Ecco alcuni esempi di metriche operative:

  • Utenti attivi settimanali
  • Numero di impressioni degli annunci
  • Visualizzazioni o condivisioni di contenuti social
  • Numero di stream multimediali

Puoi utilizzare queste metriche in applicazioni rivolte agli utenti o come input per i modelli di machine learning e il loro utilizzo in genere richiede bassa latenza e alta throughput. Poiché il calcolo di questi tipi di metriche al momento della query è impraticabile su larga scala, la preaggregazione durante l'importazione dei dati è l'approccio preferito per i sistemi in tempo reale.

Bigtable offre diversi modi per aggregare i dati al momento della scrittura, tra cui tipi di dati replicati senza conflitti, richieste ReadModifyWriteRow e viste materializzate continue.

L'aggregazione dei dati di Bigtable al momento della scrittura ti consente di evitare di dover utilizzare software di estrazione, trasformazione e caricamento (ETL) o di elaborazione in streaming per aggregare i dati prima o dopo averli scritti in Bigtable. Ad esempio, se la tua applicazione ha già pubblicato messaggi su Pub/Sub e poi ha utilizzato Dataflow per leggerli e aggregare i dati prima di scriverli in Bigtable, puoi inviare i dati direttamente alle celle aggregate in Bigtable.

Tipi di dati replicati senza conflitti

Bigtable ti consente di creare famiglie di colonne contenenti solo celle di tipo aggregate. Le celle aggregate sono strutture di tipo di dati con replica senza conflitti ottimizzate per gli aggiornamenti incrementali.

Se esegui la migrazione a Bigtable da database come Apache Cassandra, Redis o Valkey, le strutture simili in questi sistemi sono chiamate contatori.

La tabella seguente elenca le operazioni supportate e la modalità di gestione dei valori appena scritti.


Operazione

Descrizione

Somma

Il valore della cella viene sostituito con la somma del valore appena aggiunto e del valore corrente della cella.

Minimo

Il valore della cella viene sostituito con il valore più basso tra il valore appena aggiunto e il valore corrente della cella.

Massimo

Il valore della cella viene sostituito con il valore più alto tra il valore appena aggiunto e il valore attuale della cella.

HyperLogLog

Il valore scritto viene aggiunto a un insieme probabilistico di tutti i valori aggiunti dall'ultimo ripristino. Il valore della cella rappresenta lo stato dell'insieme. Per informazioni più generali sull'algoritmo HLL, consulta HyperLogLog.

Puoi leggere i valori HLL utilizzando la libreria Zetasketch.

I tipi di mutazioni che puoi inviare per creare e aggiornare le celle aggregate sono AddToCell e MergeToCell.

Per iniziare a utilizzare il conteggio in Bigtable, consulta la Guida rapida su come creare e aggiornare i contatori in Bigtable.

Lettura e scrittura

Un altro modo per aggregare i dati al momento della scrittura è utilizzare una richiesta ReadModifyWriteRow, che consente di manipolare il valore di una cella incrementandolo o aggiungendolo in modo transazionale. Per saperne di più su quando utilizzare questo approccio, consulta Aggiunte.

Viste materializzate continue

Una vista materializzata continua è un risultato precalcolato di una query SQL che aggrega i dati in una tabella di origine. La visualizzazione elabora continuamente i dati man mano che vengono importati nella tabella di origine e raggruppa gli aggiornamenti. Sono inclusi aggiornamenti e eliminazioni. L'utilizzo di viste materializzate continue può aumentare le prestazioni e l'efficienza. Per ulteriori informazioni, consulta Visualizzazioni materializzate continue.

Passaggi successivi