Werte beim Schreiben aggregieren

In diesem Dokument erhalten Sie einen Überblick über die Möglichkeiten, Ihre Bigtable-Daten beim Schreiben zu aggregieren. Bevor Sie dieses Dokument lesen, sollten Sie sich mit der Bigtable-Übersicht vertraut machen.

Viele Anwendungen erfassen Betriebsstatistiken, die Anwendungsfälle wie In-App-Berichte, Echtzeit-Empfehlungen und Ratenbegrenzung ermöglichen. Beispiele für solche Betriebsstatistiken:

  • Aktive Nutzer – Wochenübersicht
  • Anzahl der Anzeigenimpressionen
  • Aufrufe oder Shares von Inhalten in sozialen Medien
  • Anzahl der Media-Streams

Sie können diese Messwerte in nutzerorientierten Anwendungen oder als Eingaben für Modelle für maschinelles Lernen verwenden. Für ihre Verwendung sind in der Regel eine niedrige Latenz und ein hoher Durchsatz erforderlich. Da die Berechnung dieser Messwerte zur Abfragezeit in großem Maßstab unpraktisch ist, ist die Voraggregation während der Datenaufnahme der bevorzugte Ansatz für Echtzeitsysteme.

Bigtable bietet mehrere Möglichkeiten zum Aggregieren von Daten zur Schreibzeit, einschließlich konfliktfreier replizierter Datentypen, ReadModifyWriteRow-Anfragen und kontinuierlicher materialisierter Ansichten.

Wenn Sie Ihre Bigtable-Daten beim Schreiben zusammenfassen, ist keine ETL-Software (Extrahieren, Transformieren und Laden) oder Streaming-Verarbeitungssoftware erforderlich, um Ihre Daten vor oder nach dem Schreiben in Bigtable zusammenzufassen. Wenn Ihre Anwendung Dataflow verwendet, um Streamingdaten zu aggregieren, bevor sie in Bigtable geschrieben werden, können Sie die Daten direkt an aggregierte Zellen in Bigtable senden.

Konfliktfreie replizierte Datentypen

In Bigtable können Sie Spaltenfamilien erstellen, die nur Zellen vom Typ aggregate enthalten. Aggregatzellen sind konfliktfreie replizierte Datentyp-Strukturen, die für inkrementelle Aktualisierungen optimiert sind.

Wenn Sie von Datenbanken wie Apache Cassandra, Redis oder Valkey zu Bigtable migrieren, werden ähnliche Strukturen in diesen Systemen als Zähler bezeichnet.

In der folgenden Tabelle sind die unterstützten Vorgänge und die Verarbeitung neu geschriebener Werte aufgeführt.


Vorgang

Beschreibung

Summe

Der Zellwert wird durch die Summe des neu hinzugefügten Werts und des aktuellen Zellwerts ersetzt.

Minimum

Der Zellenwert wird durch den niedrigeren Wert zwischen dem neu hinzugefügten Wert und dem aktuellen Zellenwert ersetzt.

Maximum

Der Zellenwert wird durch den höheren Wert zwischen dem neu hinzugefügten Wert und dem aktuellen Zellenwert ersetzt.

HyperLogLog

Der geschriebene Wert wird einer probabilistischen Menge aller Werte hinzugefügt, die seit dem letzten Zurücksetzen hinzugefügt wurden. Der Zellenwert gibt den Status dieses Sets an. Allgemeinere Informationen zum HLL-Algorithmus finden Sie unter HyperLogLog.

Sie können HLL-Werte mit der Zetasketch-Bibliothek lesen.

Die Mutationstypen, die Sie zum Erstellen und Aktualisieren von aggregierten Zellen senden können, sind AddToCell und MergeToCell.

Eine Einführung in das Zählen in Bigtable finden Sie in der Kurzanleitung zum Erstellen und Aktualisieren von Zählern in Bigtable.

Lesen, dann schreiben

Eine weitere Möglichkeit, Daten beim Schreiben zusammenzufassen, ist die Verwendung einer ReadModifyWriteRow-Anfrage. Damit können Sie den Wert einer Zelle durch Inkrementieren oder Anhängen an den Wert transaktional bearbeiten. Weitere Informationen dazu, wann Sie diesen Ansatz verwenden sollten, finden Sie unter Anhängen.

Kontinuierliche materialisierte Ansichten

Eine kontinuierlich aktualisierte materialisierte Ansicht ist ein vorausberechnetes Ergebnis einer SQL-Abfrage, mit der Daten in einer Quelltabelle aggregiert werden. In der Ansicht werden Daten kontinuierlich verarbeitet, sobald sie in die Quelltabelle aufgenommen werden. Die Aktualisierungen werden in Batches zusammengefasst. Dazu gehören Aktualisierungen und Löschvorgänge. Die Verwendung von kontinuierlichen materialisierten Ansichten kann die Leistung und Effizienz steigern. Weitere Informationen finden Sie unter Kontinuierliche materialisierte Ansichten.

Nächste Schritte