Aggregare i valori al momento della scrittura
Questo documento fornisce una panoramica sui modi in cui puoi aggregare i dati Bigtable al momento della scrittura. Prima di leggere questo documento, assicurati di conoscere la panoramica di Bigtable.
Molte applicazioni monitorano le metriche operative che guidano i casi d'uso, tra cui report in-app, consigli in tempo reale e limitazione di frequenza. Ecco alcuni esempi di queste metriche operative:
- Utenti attivi settimanali
- Numero di impressioni degli annunci
- Visualizzazioni o condivisioni di contenuti social
- Numero di stream multimediali
Puoi utilizzare queste metriche nelle applicazioni rivolte agli utenti o come input per i modelli di machine learning e i loro utilizzi in genere richiedono bassa latenza e throughput elevato. Poiché il calcolo di questi tipi di metriche al momento della query non è pratico su larga scala, la pre-aggregazione durante importazione 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 Bigtable al momento della scrittura elimina la necessità di software di estrazione, trasformazione e caricamento (ETL) o di elaborazione in streaming per aggregare i dati prima o dopo averli scritti in Bigtable. Se la tua applicazione utilizza Dataflow per aggregare i dati in streaming 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 che contengono solo celle di tipo aggregate. Le celle aggregate sono strutture di tipi di dati replicati senza conflitti ottimizzate per gli aggiornamenti incrementali.
Se esegui la migrazione a Bigtable da database come Apache Cassandra, Redis o Valkey, strutture simili in questi sistemi vengono 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 inferiore tra il valore appena aggiunto e il valore corrente della cella. |
Massimo |
Il valore della cella viene sostituito con il valore superiore tra il valore appena aggiunto e il valore corrente 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 di questo insieme. Per informazioni più generali sull'algoritmo HLL, consulta HyperLogLog. Puoi leggere i valori HLL utilizzando la libreria Zetasketch. |
I tipi di mutazione che puoi inviare per creare e aggiornare le celle aggregate sono
AddToCell
e
MergeToCell.
Per iniziare a contare in Bigtable, consulta la guida rapida Creare e aggiornare i contatori in Bigtable.
Lettura e scrittura
Un altro modo per aggregare i dati al momento della scrittura è utilizzare una ReadModifyWriteRow, che ti consente di manipolare il valore di una cella incrementando o aggiungendo il valore in modo transazionale. Per saperne di più su quando utilizzare questo approccio, consulta Aggiunte.
Viste materializzate continue
Una vista materializzata continua è un risultato pre-calcolato di una query SQL che aggrega i dati in una tabella di origine. La vista elabora continuamente i dati man mano che vengono inseriti nella tabella di origine e raggruppa gli aggiornamenti. Sono inclusi aggiornamenti ed eliminazioni. L'utilizzo di viste materializzate continue può aumentare le prestazioni e l'efficienza. Per saperne di più, consulta Viste materializzate continue.
Passaggi successivi
- Consulta gli esempi di codice che mostrano come aggiungere un valore a una cella aggregata.
- Esamina i concetti relativi alla progettazione dello schema.