Einführung in materialisierte Ansichten

Dieses Dokument bietet eine Übersicht über die BigQuery-Unterstützung für materialisierte Ansichten. Bevor Sie dieses Dokument lesen, sollten Sie sich mit BigQuery und den logischen BigQuery-Ansichten vertraut machen.

Überblick

In BigQuery sind materialisierte Ansichten vorab berechnete Ansichten, die die Ergebnisse einer Abfrage regelmäßig im Cache speichern, um die Leistung und Effizienz zu verbessern. BigQuery nutzt vorausberechnete Ergebnisse aus materialisierten Ansichten und liest nach Möglichkeit nur Änderungen aus der Basistabelle, um aktuelle Ergebnisse zu berechnen. Materialisierte Ansichten können direkt abgefragt oder von der BigQuery-Optimierung zum Verarbeiten von Abfragen an die Basistabellen verwendet werden.

Abfragen, die materialisierte Ansichten verwenden, sind in der Regel schneller und verbrauchen weniger Ressourcen als Abfragen, die dieselben Daten ausschließlich aus den Basistabellen abrufen. Materialisierte Ansichten können die Leistung von Arbeitslasten erheblich verbessern, die häufige und wiederholte Abfragen aufweisen.

Materialisierte Ansichten haben folgende Hauptmerkmale:

  • Keinerlei Wartung erforderlich: Materialisierte Ansichten werden im Hintergrund vorberechnet, wenn sich die Basistabellen ändern. Alle inkrementellen Datenänderungen aus den Basistabellen werden automatisch zu den materialisierten Ansichten hinzugefügt, ohne dass der Nutzer eingreifen müssen.
  • Aktuelle Daten: Materialisierte Ansichten geben aktuelle Daten zurück. Wenn Änderungen an Basistabellen die materialisierte Ansicht ungültig machen, werden Daten direkt aus den Basistabellen gelesen. Wenn die Änderungen an den Basistabellen die materialisierte Ansicht nicht entwerten, werden die restlichen Daten aus der materialisierten Ansicht und nur die Änderungen aus den Basistabellen gelesen.
  • Intelligente Feinabstimmung. Wenn ein Teil einer Abfrage gegen die Basistabelle durch die Abfrage der materialisierten Ansicht gelöst werden kann, leitet BigQuery die Abfrage um, um die materialisierte Ansicht für eine bessere Leistung und Effizienz zu verwenden.

Anwendungsfälle

Materialisierte Ansichten können Abfragen mit hohen Rechenkosten und kleinen Datasets optimieren. Zu den Prozessen, die von materialisierten Ansichten profitieren, gehören OLAP-Vorgänge (Online Analytical Processing), die eine umfangreiche Verarbeitung mit vorhersehbaren und wiederholten Abfragen erfordern, wie z. B. bei ETL-Prozessen (Extract, Transform, Load) oder BI-Pipelines (Business Intelligence).

In den folgenden Anwendungsfällen wird der Wert von materialisierten Ansichten erläutert. Materialisierte Ansichten können die Abfrageleistung verbessern, wenn Sie häufig Folgendes benötigen:

  • Daten vorab aggregieren: Aggregation von Streamingdaten.
  • Daten vorfiltern. Abfragen ausführen, die nur einen bestimmten Teil der Tabelle lesen.
  • Pre-Join-Daten. Abfrage-Joins, insbesondere zwischen großen und kleinen Tabellen.
  • Daten neu clustern: Abfragen ausführen, die von einem Clustering-Schema profitieren, das sich von den Basistabellen unterscheidet.

Vergleich mit anderen BigQuery-Verfahren

In der folgenden Tabelle sind die Ähnlichkeiten und Unterschiede zwischen BigQuery-Caching, geplanten Abfragen, logischen Ansichten und materialisierten Ansichten zusammengefasst.

Komponente Caching Geplante Abfragen Logische Ansichten Materialisierte Ansichten
Computing optimieren Ja Nein Nein Ja
Abfrageunterstützung All All All Begrenzt1
Partitionierung und Clustering Nein Ja Ja
Inkrementelle Aktualisierung Nein Nein Nein Ja
Zusätzlicher Speicher Nein Ja Nein Ja
Abfrage neu schreiben Nein Nein Nein Ja
Verwaltungskosten Nein Ja Ja
Veraltete Daten Nie Ja Nie Optional 2

1 Die Option --allow_non_incremental_definition unterstützt einen erweiterten Bereich von SQL-Abfragen zum Erstellen von materialisierten Ansichten.

2 Die Option --max_staleness bietet bei der Verarbeitung großer, sich häufig ändernder Datasets eine dauerhaft hohe Leistung mit kontrollierten Kosten.

Interaktion mit anderen BigQuery-Features

Die folgenden BigQuery-Features funktionieren transparent mit materialisierten Ansichten:

  • Erklärung durch Abfrageplan: Der Abfrageplan gibt an, welche materialisierten Ansichten gescannt wurden (sofern vorhanden) und wie viele Bytes aus der materialisierten Ansicht und den Basistabellen insgesamt gelesen werden.

  • Abfrage-Caching: Die Ergebnisse einer Abfrage, die von BigQuery mit einer materialisierten Ansicht neu geschrieben werden, können im Rahmen der üblichen Beschränkungen (Verwendung deterministischer Funktionen, kein Streaming in die Basistabellen usw.) im Cache gespeichert werden.

  • Kostenbeschränkung: Wenn Sie einen Wert für die maximal in Rechnung gestellten Byte festgelegt haben und eine Abfrage eine Anzahl von Byte über das Limit hinaus lesen würde, schlägt die Abfrage fehl, ohne Kosten zu verursachen. Dies ist unabhängig davon, ob die Abfrage materialisierte Ansichten, die Basistabellen oder beides verwendet.

  • Kostenschätzung mit Probelauf: Bei einem Probelauf wird die Logik für das Neuschreiben der Abfrage anhand der verfügbaren materialisierten Ansichten wiederholt und eine Kostenschätzung bereitgestellt. Mit dieser Funktion können Sie testen, ob eine bestimmte Abfrage materialisierte Ansichten verwendet.

BigLake-Metadaten-Cache-fähige Tabellen

Materialisierte Ansichten über Metadaten-Cache-fähigen BigLake-Tabellen können auf strukturierte Daten verweisen, die in Cloud Storage und Amazon Simple Storage Service (Amazon S3) gespeichert sind. Diese materialisierten Ansichten funktionieren wie materialisierte Ansichten über von BigQuery verwalteten Speichertabellen, einschließlich der Vorteile einer automatischen Aktualisierung und intelligenten Abstimmung. Weitere Vorteile sind die Voraggregierung, Vorfilterung und Vorabverknüpfung von Daten, die außerhalb von BigQuery gespeichert sind. Materialisierte Ansichten über BigLake-Tabellen werden in einem von BigQuery verwalteten Speicher gespeichert und weisen alle Eigenschaften dieses Speichers auf.

Wenn Sie eine materialisierte Ansicht über eine Amazon S3 BigLake-Tabelle erstellen, sind die Daten in der materialisierten Ansicht nicht für Joins mit BigQuery-Daten verfügbar. Wenn Sie Amazon S3-Daten in einer materialisierten Ansicht für Joins verfügbar machen möchten, erstellen Sie ein Replikat der materialisierten Ansicht. Sie können Replikate der materialisierten Ansicht nur über autorisierte materialisierte Ansichten erstellen.

Replikate für materialisierte Ansichten

Mit BigQuery können Sie materialisierte Ansichten in metadaten-cache-fähigen BigLake-Tabellen über Daten von Amazon Simple Storage Service (Amazon S3) erstellen.

Mit einem Replikat der materialisierten Ansicht können Sie die Amazon S3-Daten der materialisierten Ansicht in Abfragen verwenden und gleichzeitig Kosten für ausgehenden Traffic vermeiden und die Abfrageleistung verbessern. Dies erfolgt durch Replikation der Amazon S3-Daten in ein Dataset in einer unterstützten BigQuery-Region, sodass die Daten lokal in BigQuery verfügbar sind.

Replikate für materialisierte Ansichten erstellen

Datenaktualität

Nachdem Sie das Replikat der materialisierten Ansicht erstellt haben, fragt der Replikationsprozess die materialisierte Ansicht der Quelle auf Änderungen ab und repliziert Daten in das Replikat der materialisierten Ansicht. Die Daten werden in dem Intervall repliziert, das Sie in der Option replication_interval_seconds der CREATE MATERIALIZED VIEW AS REPLICA OF-Anweisung angegeben haben.

Zusätzlich zum Replikationsintervall wird die Aktualität der Replikatdaten für die materialisierte Ansicht auch dadurch beeinflusst, wie oft die materialisierte Ansicht aktualisiert wird und wie oft der Metadaten-Cache der Amazon S3-Tabelle, die der materialisierten Ansicht verwendet wird, aktualisiert wird.

Sie können die Datenaktualität für das Replikat der materialisierten Ansicht und die Ressourcen, auf denen es basiert, mit der Google Cloud Console prüfen:

  • Informationen zur Aktualität des Replikats der materialisierten Ansicht finden Sie im Feld Zuletzt geändert im Bereich Details des Replikats der materialisierten Ansicht.
  • Prüfen Sie die Aktualität der materialisierten Quellansicht im Feld Zuletzt geändert im Bereich Details der materialisierten Ansicht.
  • Sehen Sie sich im Bereich Details der materialisierten Ansicht das Feld Max. Veralterung an, um den Cache-Aktualität der Amazon S3-Tabellen-Metadaten zu sehen.

Unterstützte Regionen

Verwenden Sie die Standortzuordnungen in der folgenden Tabelle, wenn Sie Replikate der materialisierten Ansicht erstellen:

Speicherort der materialisierten Quellansicht Speicherort des Replikats der materialisierten Ansicht
aws-us-east-1 Der multiregionale Standort US oder eine der folgenden Regionen:
  • northamerica-northeast1
  • northamerica-northeast2
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4
aws-us-west-2 Der multiregionale Standort US oder eine der folgenden Regionen:
  • northamerica-northeast1
  • northamerica-northeast2
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4
aws-eu-west-1 Der multiregionale Standort EU oder eine der folgenden Regionen:
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • europe-west10
aws-ap-northeast-2 Eine der folgenden Regionen:
  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-south2
  • asia-southeast1

Beschränkungen

  • Die Daten einer materialisierten Ansicht können nicht direkt durch Vorgänge wie COPY, EXPORT, LOAD, WRITE oder DML-Anweisungen (Data Manipulation Language, Datenbearbeitungssprache) aktualisiert oder bearbeitet werden.
  • Sie können eine vorhandene materialisierte Ansicht nicht durch eine materialisierte Ansicht mit demselben Namen ersetzen.
  • Die Ansicht SQL kann nach dem Erstellen der materialisierten Ansicht nicht aktualisiert werden.
  • Eine materialisierte Ansicht muss sich in derselben Organisation wie ihre Basistabellen befinden oder in demselben Projekt, wenn das Projekt nicht zu einer Organisation gehört.
  • Auf jede Basistabelle kann von einer begrenzten Anzahl von materialisierten Ansichten verwiesen werden. Weitere Informationen finden Sie unter Limits für materialisierte Ansichten.
  • Für die intelligente Abstimmung werden nur materialisierte Ansichten aus demselben Dataset berücksichtigt.
  • Materialisierte Ansichten verwenden eine eingeschränkte SQL-Syntax und eine begrenzte Anzahl von Aggregationsfunktionen. Weitere Informationen finden Sie unter Unterstützte materialisierte Ansichten.
  • Materialisierte Ansichten können nicht in anderen materialisierten Ansichten verschachtelt werden.
  • Materialisierte Ansichten können keine externen oder Platzhaltertabellen, logischen Ansichten1, Snapshots oder Tabellen mit aktiviertem Change Data Capture abfragen.
  • Für materialisierte Ansichten wird nur der GoogleSQL-Dialekt unterstützt.
  • Sie können Beschreibungen für materialisierte Ansichten festlegen, aber keine Beschreibungen für die einzelnen Spalten in der materialisierten Ansicht.
  • Wenn Sie die Basistabelle löschen, ohne zuerst die materialisierte Ansicht zu löschen, schlagen Abfragen und Aktualisierungen der materialisierten Ansicht fehl. Wenn Sie die Basistabelle neu erstellen, müssen Sie auch die materialisierte Ansicht neu erstellen.

1 Die Unterstützung logischer Ansichten befindet sich in der Vorschau. Weitere Informationen finden Sie unter Logische Ansichten referenzieren.

Einschränkungen von materialisierten Ansichten über BigLake-Tabellen

  • Die Partitionierung der materialisierten Ansicht wird nicht unterstützt. Die Basistabellen können die Hive-Partitionierung verwenden, der Speicher der materialisierten Ansicht kann jedoch nicht in BigLake-Tabellen partitioniert werden. Dies bedeutet, dass jeder Löschvorgang in einer Basistabelle eine vollständige Aktualisierung der materialisierten Ansicht verursacht. Weitere Informationen finden Sie unter Inkrementelle Aktualisierungen.
  • Der Optionswert -max_staleness der materialisierten Ansicht muss größer sein als der Wert der BigLake-Basistabelle.
  • Joins zwischen von BigQuery verwalteten Tabellen und BigLake-Tabellen werden in der Definition einer einzigen materialisierten Ansicht nicht unterstützt.

Einschränkungen von Replikaten materialisierter Ansichten

  • Sie können keine Replikate der materialisierten Ansicht für materialisierte Ansichten erstellen, die auf Tabellen basieren, die Folgendes verwenden:Sicherheit auf Zeilenebene oderSicherheit auf Spaltenebene
  • Sie können vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs) weder mit der materialisierten Quellansicht noch mit dem Replikat der materialisierten Ansicht verwenden.
  • Sie können Replikate der materialisierten Ansicht nur für materialisierte Ansichten erstellen, die auf Tabellen basieren, die Metadaten-Caching verwenden.
  • Sie können für eine bestimmte materialisierte Quellansicht nur ein einziges Replikat der materialisierten Ansicht erstellen.
  • Sie können Replikate der materialisierten Ansicht nur für autorisierte materialisierte Ansichten erstellen.
  • Die materialisierte Quellansicht, die Tabellen, auf die die materialisierte Quellansicht verweist, und das Replikat der materialisierten Ansicht müssen sich alle im selben Projekt befinden.

Preise für materialisierte Ansichten

Kosten fallen im Zusammenhang mit den folgenden Aspekten von materialisierten Ansichten an:

  • Abfragen von materialisierten Ansichten.
  • Pflegen von materialisierten Ansichten, z. B. wann materialisierte Ansichten aktualisiert werden. Die Kosten für die automatische Aktualisierung werden dem Projekt in Rechnung gestellt, in dem sich die Ansicht befindet. Die Kosten für die manuelle Aktualisierung werden dem Projekt in Rechnung gestellt, in dem der manuelle Aktualisierungsjob ausgeführt wird. Weitere Informationen zur Kostenkontrolle für Wartungen finden Sie unter Jobwartung aktualisieren.
  • Speichern von Tabellen materialisierter Ansichten.
Komponente On-Demand-Preise Kapazitätsbasierte Preise
Abfragen Byte, die von materialisierten Ansichten verarbeitet werden, und alle erforderlichen Teile der Basistabellen.1 Slots werden während der Abfrage verbraucht.
Wartung Während der Aktualisierung verarbeitete Byte. Slots werden während der Aktualisierung benötigt.
Speicher In materialisierten Ansichten gespeicherte Byte. In materialisierten Ansichten gespeicherte Byte.

1 Nach Möglichkeit liest BigQuery nur die Änderungen seit der letzten Aktualisierung der Ansicht. Weitere Informationen finden Sie unter Inkrementelle Aktualisierungen.

Details zu den Speicherkosten

Bei aggregierten Werten des Typs AVG, ARRAY_AGG und APPROX_COUNT_DISTINCT in einer materialisierten Ansicht wird der endgültige Wert nicht direkt gespeichert. BigQuery speichert stattdessen intern eine materialisierte Ansicht als Zwischenskizze. Diese wird verwendet, um den endgültigen Wert zu generieren.

Sehen Sie sich als Beispiel eine materialisierte Ansicht an, die mit dem folgenden Befehl erstellt wurde:

CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table AS
SELECT date, AVG(net_paid) AS avg_paid
FROM project-id.my_dataset.my_base_table
GROUP BY date

Während die Spalte avg_paid für den Nutzer als NUMERIC oder FLOAT64 gerendert wird, wird sie intern als BYTES gespeichert. Der Inhalt ist dabei eine Zwischenskizze in einem proprietären Format. Für die Berechnung der Datengröße wird die Spalte als BYTES behandelt.

Kosten für das Replikat der materialisierten Ansicht

Die Verwendung von Replikaten für materialisierte Ansichten verursacht Rechen-, ausgehende Datenübertragungs- und Speicherkosten.

Nächste Schritte