Übersicht über logische und materialisierte Ansichten

In diesem Dokument werden logische und materialisierte Ansichten in BigQuery beschrieben und verglichen. Im modernen Data Warehousing dienen Ansichten als wichtige Abstraktionsebene zwischen Rohdaten und Business Intelligence. In BigQuery haben Architekten in der Regel die Wahl zwischen zwei Typen: logischen (Standard-)Ansichten und materialisierten Ansichten. Diese Ansichten haben zwar eine gemeinsame Benutzeroberfläche, die zugrunde liegenden Mechanismen, Leistungsprofile und Kosten sind jedoch unterschiedlich.

Logische Ansichten

Eine logische (Standard-)Ansicht ist eine virtuelle Tabelle, die durch eine SQL-Abfrage definiert wird. Es werden keine physischen Daten gespeichert. Stattdessen wird die Abfragelogik gespeichert, die zum Abrufen von Daten aus den zugrunde liegenden Basistabellen erforderlich ist. Wenn Sie eine logische Ansicht abfragen, wird sie von der BigQuery-Abfrage-Engine in die zugrunde liegende Abfrage erweitert. Das bedeutet, dass BigQuery die Ansicht bei jedem Aufruf neu ausführt.

Logische Ansichten bieten unter anderem folgende Vorteile:

  • Kein Speicheraufwand Da keine zusätzlichen Daten gespeichert werden, zahlen Sie nur für die Speicherung der Basistabellen.
  • Echtzeitgenauigkeit Da die Abfrage zur Ausführungszeit ausgeführt wird, spiegeln die Ergebnisse immer den aktuellen Status der Basistabellen wider.
  • Logische Abstraktion: Komplexe Joins werden vereinfacht oder die Sicherheit auf Zeilenebene wird angewendet, ohne dass Daten dupliziert werden.
  • SQL-Flexibilität: Unterstützt das gesamte BigQuery-SQL, einschließlich komplexer Fensterfunktionen, benutzerdefinierter Funktionen (UDFs) und aller Join-Typen.

Materialisierte Ansichten

Materialisierte Ansichten sind vorausberechnete Ansichten, in denen die Ergebnisse einer SQL-Abfrage regelmäßig gespeichert werden. Im Gegensatz zu logischen Ansichten werden die berechneten Daten physisch gespeichert. So kann BigQuery Ergebnisse schneller bereitstellen, ohne die Rohdaten wiederholt verarbeiten zu müssen. Dadurch kann die Abfragelatenz für große Datasets durch die Vorverarbeitung von Abfragen reduziert werden. Außerdem können die Computing-Kosten für häufig verwendete Abfragen gesenkt werden.

In BigQuery materialisierten Ansichten wird die Geschwindigkeit von vorab berechneten Daten mit der Genauigkeit einer Live-Ansicht kombiniert. Das erreichen sie durch Folgendes:

  • Automatische Aktualisierung: Ein Hintergrundprozess aktualisiert die materialisierten Ansichten, wenn sich die Basistabellen ändern.
  • Datenaktualität: Wenn eine Abfrage erfolgt, während eine Hintergrundaktualisierung aussteht, gleicht BigQuery die nicht verarbeiteten Änderungen der Basistabelle automatisch aus, um aktuelle Ergebnisse zu liefern.
  • Intelligente Feinabstimmung: Der Abfrageoptimierer kann Abfragen von Basistabellen automatisch an die materialisierte Ansicht umleiten, wenn er feststellt, dass die materialisierte Ansicht die Antwort effizienter liefern kann.

Vergleich von logischen und materialisierten Ansichten

Obwohl logische Ansichten der Standardtyp von Ansichten sind, sollten Sie eine materialisierte Ansicht erstellen, wenn Sie häufig eine große oder rechenintensive Ansicht abfragen. Logische Ansichten sind virtuell und bieten einen wiederverwendbaren Verweis auf einen Satz von Daten, speichern Daten jedoch nicht physisch. Materialisierte Ansichten werden wie eine logische Ansicht mit SQL definiert, aber die Daten, die BigQuery zur Verbesserung der Leistung verwendet, werden physisch gespeichert.

In der folgenden Tabelle sind die Ähnlichkeiten und Unterschiede zwischen logischen Ansichten und materialisierten Ansichten in BigQuery zusammengefasst:

Dimension Logische Ansicht Materialisierte Ansicht
Datenpersistenz Keine (virtuell) Physisch (auf Festplatte gespeichert)
Ausführung Jedes Mal, wenn die Ansicht aufgerufen wird Vorberechnet; Hintergrundaktualisierung
Datenaktualität Nie Optional 1 (über Aktualisierung)
Leistung Variable (abhängig von der Basistabelle) Konsistent und schnell
SQL-Komplexität Unbegrenzt Begrenzt
Optimiert für Sicherheit und Abstraktion Schnellere und kostengünstigere Prozesse
Wartungs- und Speicherkosten Nein Ja

1 Die Option --max_staleness verbessert die Abfrageleistung bei der Verarbeitung großer, sich häufig ändernder Datasets mit kontrollierten Kosten.

Wann sollten logische Ansichten verwendet werden?

  • Semantische Ebenen: Benennen Sie komplexe Spaltennamen in für geschäftliche Benutzer gängige Begriffe um.
  • Schnelle Entwicklung: Verwenden Sie diese Option, wenn sich die Logik ändert und Sie den Aufwand für die Verwaltung des physischen Speichers nicht übernehmen möchten.
  • Konsolidierte Datenquellen: Sie können eine Datenquelle für Visualisierungstools wie Data Studio oder BigQuery Sharing (früher Analytics Hub) bereitstellen.

Wann sollten materialisierte Ansichten verwendet werden?

  • Daten vorverarbeiten: Sie können die Abfrageleistung verbessern, indem Sie Aggregate, Filter, Joins und Cluster vorbereiten.
  • Dashboard-Beschleunigung BI-Tools wie Looker, die häufig dieselben aggregierten Messwerte abfragen, z. B. täglich aktive Nutzer, werden unterstützt.
  • Echtzeitanalysen für große Streams: Schnellere Antworten auf Tabellen mit Streamingdaten mit hoher Geschwindigkeit.
  • Kostenverwaltung Kosten für wiederholte, teure Abfragen großer Datasets senken

Autorisierte Ansichten

Sie können auch eine autorisierte Ansicht erstellen, um eine Teilmenge von Daten aus einem Quelldataset für eine Ansicht in einem sekundären Dataset freizugeben. Anschließend können Sie diese Ansicht für bestimmte Nutzer und Gruppen (Principals) freigeben, die die freigegebenen Daten aufrufen und Abfragen dafür ausführen können, aber nicht direkt auf das Quelldataset zugreifen können.

Sie können eine autorisierte Ansicht für eine logische oder eine materialisierte Ansicht erstellen. Eine autorisierte Ansicht für eine materialisierte Ansicht wird als autorisierte materialisierte Ansicht bezeichnet.

Best Practices

In einer gut strukturierten BigQuery-Umgebung sind logische Ansichten ein nützliches Tool zum Konsolidieren der benötigten Daten. Materialisierte Ansichten sollten als Tool zur Leistungsoptimierung für bestimmte Abfragemuster mit hohem Traffic verwendet werden, die eine umfangreiche Aggregation erfordern.

Informationen zum Überwachen der Nutzung und Leistung von materialisierten Ansichten finden Sie unter Ansicht MATERIALIZED_VIEWS.

Nächste Schritte