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 standardmäßigen BigQuery-Ansichten vertraut machen.

Übersicht

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 Deltaä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 der Basistabelle abrufen. Materialisierte Ansichten können die Leistung von Arbeitslasten erheblich verbessern, die häufige und wiederholte Abfragen aufweisen.

Vorteile von materialisierten Ansichten

BigQuery Materialized Views bietet folgende Vorteile:

  • Verkürzung der Ausführungszeit und Senkung der Kosten für Abfragen mit Aggregatfunktionen. Der größte Vorteil wird erzielt, wenn die Berechnungskosten einer Abfrage hoch sind und das resultierende Dataset klein ist. Verwenden Sie materialisierte Ansichten, wenn Sie eine Rohtabelle haben und eine OLAP-artige Aggregation (Online Analytical Processing, analytische Onlineverarbeitung) durchführen möchten, die eine umfangreiche Verarbeitung erfordert, und Sie dafür vorhersagbare und wiederkehrende Abfragen verwenden möchten, z. B. aus ETL-Pipelines (Extrahieren, Transformieren, Laden) oder BI-Pipelines (Business Intelligence).

  • Automatische und transparente BigQuery-Abfrageoptimierung. Das BigQuery-Optimierungstool verwendet gegebenenfalls eine materialisierte Ansicht, um den Ausführungsplan der Abfrage zu verbessern. Für diese Optimierung sind keine Änderungen an den Abfragen erforderlich.

  • Aggregation von Echtzeitdaten: Wenn Sie auf Daten zugreifen möchten, um in Echtzeit Entscheidungen zu treffen, können Sie BigQuery Materialized Views mit BigQuery-Streaming verwenden, um Aggregationen in Echtzeit durchzuführen und aktuelle Informationen bereitzustellen.

Vorschaufeatures für materialisierte Ansichten

Zusätzlich zu den allgemein verfügbaren Features für materialisierte Ansichten sind in der Vorschau die folgenden Features für materialisierte Ansichten verfügbar:

Erforderliche Berechtigungen

Informationen zu den Berechtigungen, die zum Ausführen von Vorgängen für materialisierte Ansichten erforderlich sind, finden Sie unter Erforderliche Berechtigungen für die Arbeit mit materialisierten Ansichten.

Vergleich mit anderen BigQuery-Verfahren

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

Komponente Caching Geplante Abfragen Standardansichten Materialisierte Ansichten
Leistung Ja Nein Nein Ja
Abfrage wird unterstützt Alle Alle Alle Aggregation – Filtern und Gruppieren
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 Nie
Auf einzelne Tabelle beschränkt Nein Nein Nein Ja

Interaktion mit anderen BigQuery-Features

Die folgenden BigQuery-Features funktionieren transparent mit BigQuery Materialized Views:

  • Erläuterung eines Abfrageplans: Der Abfrageplan gibt an, welche materialisierten Ansichten gescannt werden (sofern vorhanden) und wie viele Byte aus den materialisierten Ansichten und der Basistabelle 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 Basistabelle usw.) im Cache gespeichert werden.

  • Kostenberechnung: Bei der On-Demand-Abrechnung wird gescannt, wenn eine Abfrage mit einer oder mehreren materialisierten Ansichten neu geschrieben wird. Dadurch werden weniger Byte gescannt, als beim Scannen der gesamten Basistabelle.

  • 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 Basistabelle 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.

Beschränkungen

  • Sie können direkt in einer materialisierten Ansicht keine Rohdaten bearbeiten oder lesen. Das bedeutet, dass die folgenden Aktionen nicht unterstützt werden:

    • Kopieren einer materialisierten Ansicht als Quelle oder Ziel eines Kopierjobs
    • Exportieren einer materialisierten Ansicht
    • Laden von Daten in eine materialisierte Ansicht
    • Schreiben eines Abfrageergebnisses in eine materialisierte Ansicht
    • Ausführen von DML-Anweisungen für eine materialisierte Ansicht
  • Eine materialisierte Ansicht muss sich in derselben Organisation wie die Basistabelle befinden oder in demselben Projekt, wenn das Projekt nicht zu einer Organisation gehört.

  • Jede Basistabelle kann von bis zu 20 materialisierten Ansichten aus demselben Dataset, bis zu 100 materialisierte Ansichten aus demselben Projekt und bis zu 500 materialisierten Ansichten aus der gesamten Organisation referenziert werden.

  • Nur die materialisierten Ansichten aus demselben Dataset werden bei der automatischen Abfrageumschreibung (oder der intelligenten Abstimmung) 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.

  • Eine materialisierte Ansicht kann nur auf eine einzelne Tabelle verweisen und keine Joins verwenden.

  • Materialisierte Ansichten können nicht in anderen materialisierten Ansichten verschachtelt werden.

  • Sie können für materialisierte Ansichten nur den Standard-SQL-Dialekt verwenden.

  • SHOW-DDL-Anweisungen werden bei materialisierten Ansichten nicht unterstützt.

  • ALTER-DDL-Anweisungen, außer ALTER mit SET OPTIONS, werden bei materialisierten Ansichten nicht unterstützt.

  • Wenn Sie die Basistabelle löschen, ohne zuerst die materialisierte Ansicht zu löschen, schlagen Abfragen über die materialisierte Ansicht sowie Aktualisierungen fehl. Wenn Sie die Basistabelle neu erstellen möchten, müssen Sie auch die materialisierte Ansicht neu erstellen.

  • Nachdem eine materialisierte Ansicht auf der Grundlage einer partitionierten Basistabelle erstellt wurde, kann der Partitionsablauf der Tabelle nicht mehr geändert werden. Wenn Sie den Partitionsablauf der Basistabelle ändern möchten, müssen Sie zuerst alle materialisierten Ansichten löschen, die auf der partitionierten Tabelle basieren.

  • Es gibt einige Einschränkungen hinsichtlich der Verwendung der Anweisungen ARRAY_AGG und JOIN in materialisierten Ansichten. Weitere Informationen finden Sie unter Überlegungen zu ARRAY_AGG und Überlegungen zu JOIN.

Preise für materialisierte Ansichten

Kosten fallen im Zusammenhang mit den folgenden Aspekten von BigQuery Materialized Views an:

  • Abfragen von materialisierten Ansichten.
  • Pflegen von materialisierten Ansichten, z. B. wann materialisierte Ansichten aktualisiert werden.
  • Speichern von Tabellen materialisierter Ansichten.
Komponente On-Demand-Preise Pauschalpreise
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.

1Wenn für die Basistabelle nur Anfügungen zulässig sind, wird seit der letzten Aktualisierung der materialisierten Ansicht nur das Delta aus der Basistabelle verarbeitet. 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.

Sicherheit ansehen

Zugriff auf BigQuery-Ansichten steuern

Mehr zur Verwendung der Play Console erfahren