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
- Codebeispiele zum Hinzufügen eines Werts zu einer aggregierten Zelle
- Konzepte zum Schemadesign kennenlernen