Kontinuierliche materialisierte Ansichten

In diesem Dokument erhalten Sie einen Überblick über kontinuierliche materialisierte Ansichten und gängige Anwendungsfälle dafür. Bevor Sie diese Seite lesen, sollten Sie sich mit den Informationen unter Bigtable – Übersicht vertraut gemacht haben.

In Bigtable ist eine kontinuierliche materialisierte Ansicht ein vollständig verwaltetes, vorab berechnetes Ergebnis einer kontinuierlich laufenden SQL-Abfrage, die die kontinuierliche materialisierte Ansicht inkrementell aktualisiert. Die SQL-Abfrage kann Aggregationen und Transformationen auf der zugrunde liegenden Bigtable-Tabelle enthalten. Die Verwendung kontinuierlicher materialisierter 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 Aufnehmen vorab zusammenfassen. Außerdem hat eine kontinuierliche materialisierte Ansicht ein anderes Schema als die 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.

Die folgenden Hauptmerkmale von kontinuierlichen materialisierten Ansichten in Bigtable:

  • Keine Wartung erforderlich: Eine kontinuierliche materialisierte Ansicht wird im Hintergrund vorab berechnet. Datenänderungen an der Basistabelle, einschließlich Aktualisierungen und Löschungen, werden automatisch im Hintergrund an die kontinuierliche materialisierte Ansicht weitergegeben, 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 Speicherbereinigung: Eine kontinuierliche materialisierte Ansicht bleibt mit den Speicherbereinigungsrichtlinien ihrer Quelltabelle synchronisiert und wird automatisch aktualisiert, wenn Tabellendaten ablaufen oder gelöscht werden.
  • Lese- und Schreiblatenz sind nicht betroffen: Eine kontinuierliche materialisierte Ansicht hat nur minimale Auswirkungen auf die Leistung der Quelltabelle, wenn die Cluster der Instanz ausreichend bereitgestellt sind oder die automatische Skalierung verwendet wird.
  • Schließlich konsistent: Kontinuierliche materialisierte Ansichten werden im Hintergrund berechnet. Aktualisierungen einer kontinuierlichen materialisierten Ansicht können verzögert werden, die kontinuierlichen materialisierten Ergebnisse sind jedoch immer konsistent.

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 aus einer kontinuierlichen materialisierten Ansicht lesen, indem Sie Folgendes verwenden:

Weitere Informationen finden Sie unter 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. Nach der Erstellung werden in einer kontinuierlichen materialisierten Ansicht Daten aus der Quelltabelle kontinuierlich und automatisch in das von der SQL-Abfrage definierte Format umstrukturiert. Anstatt die Tabelle abzufragen und die Daten nach dem Lesen zu transformieren oder zu aggregieren, können Sie dann die kontinuierliche materialisierte Ansicht abfragen.

Materialisierte Ansichten können die Abfrageleistung für die folgenden Anwendungsfälle verbessern:

  • Daten vorab zusammenfassen: Mit einer kontinuierlichen materialisierten Ansicht können Sie eingehende Daten über Zeilen hinweg zusammenfassen. Das ist nützlich, wenn Sie schnell zusammengefasste und aggregierte Daten abrufen möchten, z. B. Messwerte für Dashboards.
  • Lambda- und Kappa-Architekturen automatisieren: Wenn für Ihre Anwendung eine Mischung aus Echtzeit-Streaming-Pipeline-Daten und Batch-Pipeline-Daten mit Verlaufsdaten erforderlich ist, bieten kontinuierliche materialisierte Ansichten eine einheitliche Ansicht aller Datenquellen, ohne dass zusätzliche Tools zur Streamverarbeitung oder benutzerdefinierte ETL-Jobs erforderlich sind.

Informationen zum Vergleichen kontinuierlicher materialisierter Ansichten mit anderen Bigtable-Ansichtstypen finden Sie unter Tabellen und Ansichten.

Wann sollte ich Zähler verwenden?

Eine weitere Möglichkeit, Daten vorab zusammenzufassen, besteht darin, mithilfe von zusammenfassenden Zellen verteilte Zähler zu erstellen.

Schreibvorgänge in Summenzellen können sofort aus dem Cluster gelesen werden, in den sie geschrieben werden. Kontinuierlich materialisierte Ansichten werden nach dem Schreiben der Daten verarbeitet und stimmen schließlich mit der Quelltabelle überein.

Verwenden Sie Zähler anstelle kontinuierlicher materialisierter Ansichten für Folgendes:

  • Aggregationen, für die keine Filter erforderlich sind und die nicht zeilenübergreifend sein 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:

  • Einen anderen Schlüssel für Abfragen für Ihre Aggregationen generieren
  • Änderungen an der Basistabelle in Ihren Aggregationen sehen
  • Daten automatisch über mehrere Zeilen hinweg kombinieren

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

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

Ressourcenbereitstellung und Leistung

Die fortlaufende Verarbeitung für kontinuierliche materialisierte Ansichten erfolgt als Hintergrundjob mit niedriger Priorität. Daher hat es nur minimale Auswirkungen auf die Anwendungsleistung und die Lese- und Schreiblatenz der Quelltabelle, sofern Ihre Cluster eine ausreichende Größe haben.

Damit die Daten in der kontinuierlichen materialisierten Ansicht immer auf dem neuesten Stand sind, sollten Sie das Autoscaling für die Cluster in der Instanz aktivieren, die die kontinuierliche materialisierte Ansicht enthält. Das Autoscaling fügt automatisch genügend Knoten hinzu, um den Verarbeitungsoverhead zu bewältigen, und entfernt sie dann, wenn sie nicht mehr benötigt werden. So wird sichergestellt, dass während der Ausführung der kontinuierlich laufenden SQL-Abfrage genügend Rechenkapazität verfügbar ist. Mit Autoscaling können Sie auch dafür sorgen, dass Sie genügend Knoten haben, um die Speicheranforderungen Ihrer kontinuierlichen materialisierten Ansichten zu erfüllen.

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 bei jeder Bigtable-Tabelle gibt es eine kontinuierliche materialisierte Ansicht in allen Clustern der Instanz, 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. Durch das Autoscaling wird sichergestellt, dass Ihre Cluster bei sich ändernden Speicheranforderungen hoch- oder herunterskaliert werden.

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

Kontinuierlicher Speicher für materialisierte Ansichten

Eine kontinuierliche materialisierte Ansicht enthält Daten aus der SQL-Abfrage, auf der sie basiert. Das bedeutet, dass sie aggregierte Werte enthält, die durch Aggregationsklauseln in der SQL-Abfrage definiert sind, und nicht aggregierte Werte, die den Gruppierungsschlüssel definieren.

Zwischenspeicher

Zur Unterstützung der Synchronisierung einer kontinuierlichen materialisierten Ansicht mit ihrer Quelltabelle verwendet Bigtable Zwischenspeicher, um Kopien der Daten zu speichern, die zum inkrementellen Aktualisieren der kontinuierlichen materialisierten Ansicht erforderlich sind.

Die Datenmenge im Zwischenspeicher entspricht ungefähr der Datenmenge, die in der Quelltabelle gescannt wird, um das Ergebnis der SQL-Abfrage zu generieren, die die kontinuierliche materialisierte Sicht definiert. Wenn Ihre Abfrage beispielsweise Daten aus der gesamten Tabelle aggregiert, speichert Bigtable das Äquivalent der gesamten 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 während der gesamten Lebensdauer der kontinuierlichen materialisierten Ansicht erhalten, um inkrementelle Aktualisierungen der materialisierten Ansicht effizient zu unterstützen und Löschvorgänge aus der Quelltabelle an die kontinuierliche materialisierte Ansicht weiterzuleiten. Sie können die Daten im Zwischenspeicher nicht lesen. Informationen zur Zwischenspeichernutzung finden Sie unter Messwerte für kontinuierliche materialisierte Ansichten.

Replikation

In Instanzen, in denen die Replikation verwendet wird, werden kontinuierliche materialisierte Ansichten nicht auf dieselbe Weise repliziert wie Tabellen. Stattdessen verarbeitet jeder Cluster in einer Instanz die kontinuierliche materialisierte Ansicht unabhängig mit einer eigenen 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 kontinuierlicher materialisierter Ansichten fallen keine Kosten pro Ressource an. Das Erstellen und Synchronisieren kontinuierlicher materialisierter Ansichten erfordert jedoch Verarbeitung und Speicherplatz. Die Kosten werden Ihnen daher zu den Standardpreisen in Rechnung gestellt. Wenn Sie eine kontinuierliche materialisierte Ansicht erstellen, können Sie mit folgenden Leistungssteigerungen rechnen:

  • Speicherplatz: Ihnen werden die Daten in Rechnung gestellt, die in der kontinuierlichen materialisierten Ansicht und für den Zwischenspeicher gespeichert werden. Weitere Informationen finden Sie unter Speicher.
  • Berechnung: Die kontinuierliche Synchronisierung der Quelltabelle und der kontinuierlichen materialisierten Ansicht erfordert CPU-Verarbeitung. Ihre Cluster benötigen möglicherweise mehr Knoten, um die zusätzlichen Hintergrundarbeiten zu bewältigen.

Gleichzeitig kann es zu einer geringeren Verarbeitung in der Quelltabelle kommen, z. B. wenn Sie keine Bereichsscans mehr für die Daten ausführen, um wiederholte Berechnungen und andere weniger effiziente Abfragen durchzuführen. Außerdem müssen Sie möglicherweise keine Pipeline-Jobs wie Dataflow oder Spark mehr ausführen, um Quelldaten zu aggregieren und wieder in Bigtable zu schreiben.

Weitere Informationen zu den Preisen finden Sie unter Bigtable-Preise. Messwerte, mit denen Sie die Nutzung Ihrer kontinuierlichen materialisierten Ansichten im Blick behalten können, finden Sie unter Messwerte.

Messwerte

Für eine kontinuierliche materialisierte Ansicht werden mehrere wichtige Messwerte an Cloud Logging gesendet, 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 in Byte, die für die kontinuierliche materialisierte Ansicht verwendet wird
materialized_view/intermediate_storage Datenmenge in Byte, die bei der Zwischenverarbeitung für die kontinuierliche materialisierte Ansicht verwendet wird
table/materialized_view_intermediate_storage Datenmenge, die bei der Zwischenverarbeitung für kontinuierliche materialisierte Ansichten verwendet wird, die in dieser Tabelle definiert sind
materialized_view/user_errors Anzahl der Fehler aus Nutzerdaten für die kontinuierliche materialisierte Ansicht. Nutzerfehler verhindern, dass Daten an die Ansicht weitergegeben 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 der CPU-Messwerte enthalten. So können Sie ihre Auswirkungen besser nachvollziehen. 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“.

Eine Einführung in Cloud Logging finden Sie unter Logs abfragen und ansehen.

Beschränkungen

  • Die SQL-Abfrage, die eine kontinuierliche materialisierte Ansicht definiert, kann nicht geändert werden. 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 Datenaufbewahrung richtet sich nach 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