Werte beim Schreiben aggregieren
In diesem Dokument erhalten Sie einen Überblick darüber, wie Sie Ihre Bigtable-Daten beim Schreiben zusammenfassen können. Bevor Sie dieses Dokument lesen, sollten Sie sich mit der Bigtable-Übersicht vertraut gemacht haben.
Viele Anwendungen erfassen betriebliche Messwerte, die Anwendungsfälle vorantreiben, darunter In-App-Berichte, Echtzeitempfehlungen und Ratenbegrenzungen. Beispiele für solche betrieblichen Messwerte:
- Aktive Nutzer – Wochenübersicht
- Anzahl der Anzeigenimpressionen
- Aufrufe oder geteilte Inhalte in sozialen Netzwerken
- Anzahl der Medienstreams
Sie können diese Messwerte in nutzerorientierten Anwendungen oder als Eingaben für Modelle des maschinellen Lernens verwenden. Für ihre Verwendung sind in der Regel eine niedrige Latenz und ein hoher Durchsatz erforderlich. Da die Berechnung dieser Messwerte bei der Abfrage in großem Umfang unpraktisch ist, wird für Echtzeitsysteme die Voraggregation während der Datenaufnahme bevorzugt.
Bigtable bietet mehrere Möglichkeiten, Daten zum Zeitpunkt des Schreibens zu aggregieren, einschließlich konfliktfrei replizierter Datentypen, ReadModifyWriteRow
-Anfragen und kontinuierlicher materialisierter Ansichten.
Wenn Sie Ihre Bigtable-Daten zum Zeitpunkt des Schreibens zusammenfassen, müssen Sie keine ETL-Software (Extract, Transform, Load) oder Streaming-Verarbeitungssoftware verwenden, um Ihre Daten vor oder nach dem Schreiben in Bigtable zusammenzufassen. Wenn Ihre Anwendung beispielsweise zuvor Nachrichten in Pub/Sub veröffentlicht und dann mit Dataflow die Nachrichten gelesen und die Daten aggregiert hat, bevor sie in Bigtable geschrieben wurden, können Sie die Daten stattdessen direkt an Aggregatzellen in Bigtable senden.
Konfliktfrei replizierte Datentypen
In Bigtable können Sie Spaltenfamilien erstellen, die nur Zellen vom Typ aggregieren enthalten. Aggregierungszellen sind Strukturen vom konfliktfreien replizierten Datentyp, 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 Zellenwert wird durch die Summe des neu hinzugefügten Werts und des aktuellen Zellenwerts ersetzt. |
Mindestbestellwert |
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 einem probabilistischen Satz aller Werte hinzugefügt, die seit dem letzten Zurücksetzen hinzugefügt wurden. Der Zellenwert gibt den Status dieses Satzes an. Allgemeine Informationen zum HLL-Algorithmus finden Sie unter HyperLogLog. Sie können HLL-Werte mit der Zetasketch-Bibliothek lesen. |
Die Mutationen, die Sie zum Erstellen und Aktualisieren von Summenzellen senden können, sind AddToCell
und MergeToCell
.
Eine Einführung in die Zählung in Bigtable finden Sie in der Kurzanleitung zum Erstellen und Aktualisieren von Zählern in Bigtable.
Lesen und dann schreiben
Eine weitere Möglichkeit zur Aggregation von Daten beim Schreiben ist die Verwendung einer ReadModifyWriteRow-Anfrage. Damit können Sie den Wert einer Zelle ändern, indem Sie ihn transaktional erhöhen oder anhängen. Weitere Informationen dazu, wann Sie diesen Ansatz verwenden sollten, finden Sie unter Anhänge.
Kontinuierliche materialisierte Ansichten
Eine kontinuierliche materialisierte Ansicht ist ein vorab berechnetes Ergebnis einer SQL-Abfrage, bei der Daten in einer Quelltabelle zusammengefasst werden. Die Daten werden kontinuierlich verarbeitet, während sie in die Quelltabelle aufgenommen werden, und die Aktualisierungen werden in Batches ausgeführt. Dazu gehören Aktualisierungen und Löschvorgänge. Mit kontinuierlichen materialisierten Ansichten lässt sich die Leistung und Effizienz steigern. Weitere Informationen finden Sie unter Kontinuierliche materialisierte Ansichten.