Kontinuierliche materialisierte Ansichten

Dieses Dokument bietet einen Überblick über kontinuierliche materialisierte Ansichten und gängige Anwendungsfälle dafür. Bevor Sie diese Seite lesen, sollten Sie sich mit der Bigtable-Übersicht vertraut gemacht haben.

In Bigtable ist eine kontinuierliche materialisierte Ansicht ein vollständig verwaltetes, vorab berechnetes Ergebnis einer kontinuierlich ausgeführten SQL-Abfrage, die die kontinuierliche materialisierte Ansicht inkrementell aktualisiert. Die SQL-Abfrage kann Aggregationen und Transformationen für die zugrunde liegende Bigtable-Tabelle enthalten. Die Verwendung von kontinuierlichen materialisierten Ansichten kann die Leistung und Effizienz steigern.

Daten in einer kontinuierlichen materialisierten Ansicht umfassen Folgendes:

  • Aggregierte oder transformierte Werte, die aus Daten in der Quelltabelle abgeleitet werden
  • Nicht aggregierte Werte, die den Gruppierungsschlüssel definieren

Mit kontinuierlichen materialisierten Ansichten können Sie Ihre Daten beim Erfassen vorab aggregieren. Außerdem hat eine kontinuierliche materialisierte Ansicht ein anderes Schema als ihre Quelltabelle. Die Daten der Quelltabelle werden in einer Struktur dargestellt, die für Abfragen mit anderen Suchmustern als die für die Quelltabelle verwendeten Abfragen optimiert ist.

Kontinuierliche materialisierte Ansichten in Bigtable haben folgende Hauptmerkmale:

  • Keine Wartung erforderlich: Eine kontinuierliche materialisierte Ansicht wird im Hintergrund vorberechnet. Datenänderungen an der Quelltabelle, einschließlich Aktualisierungen und Löschungen, werden automatisch im Hintergrund in die kontinuierliche materialisierte Ansicht übertragen, ohne dass der Nutzer eingreifen muss.
  • SQL-Entwicklungsmuster: Kontinuierliche materialisierte Ansichten basieren auf GoogleSQL für Bigtable-Abfragen, einschließlich SQL-Funktionen, Filtern und Aggregationen.
  • Synchronisierung mit der automatischen Speicherbereinigung: Eine kontinuierliche materialisierte Ansicht wird mit den Richtlinien für die automatische Speicherbereinigung der zugehörigen Quelltabelle synchronisiert und automatisch aktualisiert, wenn Tabellendaten ablaufen oder gelöscht werden.
  • Lese- und Schreiblatenzzeiten sind nicht betroffen: Eine kontinuierliche materialisierte Ansicht hat nur minimale Auswirkungen auf die Leistung der Quelltabelle, wenn die Cluster der Instanz ausreichend bereitgestellt werden oder die automatische Skalierung verwendet wird.
  • Eventual Consistency:Kontinuierliche materialisierte Ansichten werden im Hintergrund berechnet. Aktualisierungen einer kontinuierlichen materialisierten Ansicht können verzögert werden, aber die Ergebnisse der kontinuierlichen materialisierten Ansicht sind immer zeitlich konsistent.

Der Zeilenschlüssel, der Spaltenqualifizierer und die Spaltenwerte, die Sie zum Definieren einer kontinuierlichen materialisierten Ansicht verwenden, werden als Dienstdaten behandelt. Erstellen Sie daher keine fortlaufende materialisierte Ansicht mit Zeilenschlüssel, Spaltenqualifizierer oder Spaltenwerten, die vertrauliche Informationen enthalten. Informationen zum Umgang mit Dienstdaten finden Sie in der Google Cloud Datenschutzerklärung.

Sie können eine kontinuierliche materialisierte Ansicht mit der Google Cloud CLI, dem Bigtable Studio-Abfrageeditor in der Google Cloud -Konsole oder den Bigtable-Clientbibliotheken für Java und Go erstellen.

Sie können mit den folgenden Methoden Daten aus einer kontinuierlichen materialisierten Ansicht lesen:

Weitere Informationen finden Sie unter Daten aus einer kontinuierlichen materialisierten Ansicht lesen.

Wann sollten kontinuierliche materialisierte Ansichten verwendet werden?

Mit kontinuierlichen materialisierten Ansichten können Sie eine neue Darstellung Ihrer Bigtable-Daten mit SQL definieren. Nachdem eine kontinuierliche materialisierte Ansicht erstellt wurde, werden die Daten aus der Quelltabelle kontinuierlich und automatisch in das durch die SQL-Abfrage definierte Format umstrukturiert. Anstatt die Tabelle abzufragen und die Daten nach dem Lesen zu transformieren oder zu aggregieren, können Sie die kontinuierliche materialisierte Ansicht abfragen.

Kontinuierliche materialisierte Ansichten können die Abfrageleistung in den folgenden Anwendungsfällen verbessern:

  • Vorabaggregation von Daten: Mit einer kontinuierlichen materialisierten Ansicht können Sie eingehende Daten zeilenübergreifend aggregieren. So können Sie schnell zusammengefasste und aggregierte Daten abrufen, z. B. Messwerte für Dashboards.
  • Automatisierung von Lambda- und Kappa-Architekturen: Wenn für Ihre Anwendung eine Mischung aus Echtzeit-Streaming-Pipeline-Daten und Batch-Pipeline-Daten mit Verlaufsdaten erforderlich ist, verwenden Sie kontinuierliche materialisierte Ansichten. Diese Ansichten bieten eine Übersicht über alle Datenquellen, die im Laufe der Zeit aktualisiert wird, um Änderungen an den zugrunde liegenden Daten widerzuspiegeln. Zusätzliche Stream-Verarbeitungstools oder benutzerdefinierte ETL-Jobs sind nicht erforderlich.
  • Sekundäre Zugriffsmuster: Mit kontinuierlichen materialisierten Ansichten wird eine alternative Darstellung Ihrer Daten erstellt. Diese Darstellung kann für Abfragen mit anderen Suchmustern als denen optimiert werden, die Sie in Abfragen für die Quelltabelle verwenden. Weitere Informationen zu diesen Mustern finden Sie unter Globalen sekundären Index erstellen.

Einen Vergleich von kontinuierlichen materialisierten Ansichten mit anderen Arten von Bigtable-Ansichten finden Sie unter Tabellen und Ansichten.

Wann sollten Zähler verwendet werden?

Eine weitere Möglichkeit, Ihre Daten vorab zusammenzufassen, besteht darin, verteilte Zähler mit aggregierten Zellen zu erstellen.

Schreibvorgänge in aggregierte Zellen sind sofort im Cluster lesbar, in den sie geschrieben werden. Kontinuierliche materialisierte Ansichten werden nach dem Schreiben von Daten verarbeitet und stimmen schließlich mit der Quelltabelle überein.

Verwenden Sie Zähler anstelle von kontinuierlichen materialisierten Ansichten für Folgendes:

  • Aggregationen, für die keine Filter erforderlich sind und die nicht über Zeilen hinweg erfolgen müssen
  • Wenn Sie Ihre Schreibvorgänge sofort aus dem Cluster lesen müssen, in den sie geschrieben werden

Verwenden Sie kontinuierliche materialisierte Ansichten, wenn Sie Folgendes tun möchten:

  • Anderen Schlüssel für Abfragen für Ihre Aggregationen generieren
  • Änderungen an der Basistabelle in Ihren Aggregationen sehen
  • Daten aus mehreren Zeilen automatisch kombinieren

Verwenden Sie eine Kombination aus Zählern und kontinuierlichen materialisierten Ansichten für Anwendungsfälle wie die folgenden:

  • Aktuelle Messwerte in einer aggregierten Zelle erfassen, aber bisherige Zusammenfassungen dieser Messwerte beibehalten
  • Messwerte in einer kontinuierlichen materialisierten Ansicht kombinieren

Ressourcenbereitstellung und Leistung

Die laufende Verarbeitung für kontinuierliche materialisierte Ansichten erfolgt als Hintergrundjob mit niedriger Priorität. Daher hat sie nur minimale Auswirkungen auf die Anwendungsleistung und die Latenz beim Lesen und Schreiben in der Quelltabelle, sofern Ihre Cluster ausreichend dimensioniert sind.

Damit die Daten in der kontinuierlichen materialisierten Ansicht immer aktuell sind, empfiehlt es sich, Autoscaling für die Cluster in der Instanz zu aktivieren, die Ihre kontinuierliche materialisierte Ansicht enthält. Durch Autoscaling werden automatisch genügend Knoten hinzugefügt, um den Verarbeitungsaufwand zu bewältigen. Wenn sie nicht mehr benötigt werden, werden sie wieder entfernt. So wird sichergestellt, dass während der Ausführung der kontinuierlich ausgeführten SQL-Abfrage genügend Rechenkapazität zur Verfügung steht. Mit Autoscaling können Sie auch dafür sorgen, dass Sie genügend Knoten haben, um den Speicherbedarf Ihrer kontinuierlichen materialisierten Ansichten zu decken.

Kontinuierliche materialisierte Ansichten werden auf das Limit von 1.000 Tabellen pro Instanz angerechnet.

Speicher

Für jede kontinuierliche materialisierte Ansicht speichert Bigtable Folgendes:

  • Die Daten in der kontinuierlichen materialisierten Ansicht
  • Zwischenspeicher

Wie jede Bigtable-Tabelle ist eine kontinuierliche materialisierte Ansicht in allen Clustern der Instanz vorhanden, die sie enthält. Die Cluster in Ihrer Instanz müssen genügend Knoten haben, um die Quelltabelle und alle kontinuierlichen materialisierten Ansichten zu speichern, die auf der Tabelle basieren. Mit Autoscaling können Sie die Größe Ihrer Cluster je nach Speicheranforderungen hoch- oder herunterskalieren.

Eine kontinuierliche materialisierte Ansicht muss in derselben Instanz wie die Quelltabelle erstellt werden, auch wenn der Speicher für die kontinuierliche materialisierte Ansicht von der Quelltabelle getrennt ist.

Speicher für kontinuierliche materialisierte Ansichten

Eine kontinuierliche materialisierte Ansicht enthält Daten, die aus der SQL-Abfrage stammen, auf der die kontinuierliche materialisierte Ansicht basiert. Sie enthält also aggregierte Werte, die durch Aggregationsklauseln in der SQL-Abfrage definiert werden, und nicht aggregierte Werte, die den Gruppierungsschlüssel definieren.

Zwischenspeicher

Zur Unterstützung der Synchronisierung einer kontinuierlichen materialisierten Ansicht mit der zugehörigen Quelltabelle verwendet Bigtable Zwischenspeicher, um Kopien der Daten zu speichern, die für die inkrementelle Aktualisierung der kontinuierlichen materialisierten Ansicht erforderlich sind.

Die Datenmenge im Zwischenspeicher entspricht in etwa der Datenmenge, die in der Quelltabelle gescannt wird, um das Ergebnis der SQL-Abfrage zu generieren, mit der die fortlaufende materialisierte Sicht definiert wird. Wenn Ihre Abfrage beispielsweise Daten aus der gesamten Tabelle aggregiert, speichert Bigtable die gesamte Tabelle im Zwischenspeicher. In einer kontinuierlichen materialisierten Ansicht, die auf einer Abfrage bestimmter Zeilenschlüsselbereiche oder Spalten basiert, werden nur diese Zeilen oder Spalten im Zwischenspeicher aufbewahrt.

Der Zwischenspeicher bleibt für die gesamte Lebensdauer der kontinuierlichen materialisierten Ansicht erhalten, um inkrementelle Aktualisierungen der Ansicht effizient zu unterstützen und Löschvorgänge aus der Quelltabelle in die kontinuierliche materialisierte Ansicht zu übertragen. Sie können die Daten im Zwischenspeicher nicht lesen. Informationen zur Nutzung des Zwischenspeichers finden Sie unter Messwerte für kontinuierliche materialisierte Ansichten.

Replikation

In Instanzen, in denen Replikation verwendet wird, werden kontinuierliche materialisierte Ansichten nicht auf dieselbe Weise wie Tabellen repliziert. Stattdessen verarbeitet jeder Cluster in einer Instanz die kontinuierliche materialisierte Ansicht unabhängig und verwendet dabei eine eigene Kopie der Quelltabelle. Das bedeutet beispielsweise, dass Daten, die in eine Quelltabelle in Cluster A geschrieben werden, in die Tabelle in Cluster B und dann in die kontinuierliche materialisierte Ansicht in Cluster B repliziert werden.

Kosten

Für die Verwendung von kontinuierlichen materialisierten Ansichten fallen keine Kosten pro Ressource an. Das Erstellen und Synchronisieren von kontinuierlichen materialisierten Ansichten erfordert jedoch Verarbeitung und Speicherplatz. Die Abrechnung erfolgt zu den Standardtarifen. Wenn Sie eine kontinuierliche materialisierte Ansicht erstellen, können Sie mit folgenden Steigerungen rechnen:

  • Speicher: Ihnen wird das Speichern der Daten in der kontinuierlichen materialisierten Ansicht und der Zwischenspeicher in Rechnung gestellt. Weitere Informationen finden Sie unter Speicher.
  • Compute: Für die laufende Synchronisierung der Quelltabelle und die kontinuierliche materialisierte Ansicht ist CPU-Verarbeitung erforderlich. Möglicherweise benötigen Ihre Cluster mehr Knoten, um die zusätzliche Hintergrundarbeit zu bewältigen.

Gleichzeitig kann es zu einer Verringerung der Verarbeitung in der Quelltabelle kommen, z. B. wenn Sie keine Bereichsscans der Daten mehr durchführen, um wiederholte Berechnungen und andere weniger effiziente Abfragen auszuführen. Außerdem müssen Sie möglicherweise keine Pipeline-Jobs wie Dataflow oder Spark mehr ausführen, um Quelldaten zusammenzufassen und in Bigtable zurückzuschreiben.

Weitere Informationen zu den Preisen finden Sie unter Bigtable-Preise. Messwerte, mit denen Sie die Nutzung Ihrer kontinuierlichen materialisierten Ansicht überwachen können, finden Sie unter Messwerte.

Messwerte

Eine kontinuierliche materialisierte Ansicht meldet mehrere wichtige Messwerte an Cloud Logging, mit denen Sie Ihre kontinuierlichen materialisierten Ansichten überwachen können.

Messwert Beschreibung
materialized_view/max_delay Obergrenze der Verarbeitungsverzögerung für die kontinuierliche materialisierte Ansicht
materialized_view/storage Datenmenge, die für den kontinuierlichen Speicher der materialisierten Ansicht verwendet wird, in Byte
materialized_view/intermediate_storage Datenmenge, die von der Zwischenverarbeitung für die kontinuierliche materialisierte Sicht verwendet wird, in Byte
table/materialized_view_intermediate_storage Datenmenge, die von der Zwischenverarbeitung für kontinuierliche materialisierte Ansichten verwendet wird, die für diese Tabelle definiert sind
materialized_view/user_errors Anzahl der Fehler bei Nutzerdaten für die fortlaufend materialisierte Ansicht. Nutzerfehler verhindern, dass Daten in der Ansicht angezeigt werden.
materialized_view/system_errors Anzahl der Fehler vom System für die kontinuierliche materialisierte Ansicht

Sie können auch viele Bigtable-Tabellenmesswerte verwenden, um eine kontinuierliche materialisierte Ansicht zu überwachen. Verwenden Sie dazu die ID der kontinuierlichen materialisierten Ansicht anstelle der Tabellen-ID. Insbesondere sind kontinuierliche materialisierte Ansichten in der Aufschlüsselung für CPU-Messwerte enthalten, was Ihnen helfen kann, ihre Auswirkungen zu verstehen. Bigtable-Messwerte für Anfragen pro Sekunde, Latenz und Durchsatz werden generiert, wenn Sie eine kontinuierliche materialisierte Ansicht mit der ReadRows-Methode der Data API lesen. Weitere Informationen finden Sie unter „Messwerte“.

Informationen zu den ersten Schritten mit Cloud Logging finden Sie unter Logs abfragen und ansehen.

Beschränkungen

  • Sie können nur eine kontinuierliche materialisierte Ansicht pro Tabelle erstellen.
  • Wenn Sie eine Ansicht ohne angegebenes _key erstellen, dürfen ausgewählte Spalten in der Quelltabelle nicht NULL sein. Weitere Informationen finden Sie unter Zeilenschlüssel, die durch die GROUP BY-Klausel definiert werden.
  • Sie können die SQL-Abfrage, die eine fortlaufend aktualisierte materialisierte Ansicht definiert, nicht ändern. Sie müssen die kontinuierliche materialisierte Ansicht löschen und eine neue mit Ihren Änderungen erstellen.
  • Sie können keine kontinuierliche materialisierte Ansicht einer anderen kontinuierlichen materialisierten Ansicht oder einer logischen Ansicht erstellen.
  • Sie können keine Richtlinien für die automatische Speicherbereinigung für eine kontinuierliche materialisierte Ansicht konfigurieren. Die gesamte Datenaufbewahrung unterliegt den Richtlinien für die Garbage Collection der Quelltabelle. Die Garbage Collection der Quelle wird automatisch in der kontinuierlichen materialisierten Ansicht berücksichtigt.

Nächste Schritte