Ü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, aber die zugrunde liegenden Mechanismen, Leistungsprofile und Kosten sind 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 vorab berechnete 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 zugrunde liegenden 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 vorab berechneter Daten mit der Genauigkeit einer Live-Ansicht kombiniert. Das Team geht dazu folgendermaßen vor:

  • 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: Das Abfrageoptimierungstool kann Abfragen von Basistabellen automatisch an die materialisierte Ansicht umleiten, wenn es 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 BigQuery-Ansichten und materialisierten Ansichten 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 und sorgt für kontrollierte Kosten.

Wann sollten logische Ansichten verwendet werden?

  • Semantische Ebenen: Benennen Sie komplexe Spaltennamen in für nicht technische Nutzer verständliche 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: Stellen Sie eine Datenquelle für Visualisierungstools wie Looker Studio oder BigQuery Sharing (früher Analytics Hub) bereit.

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 möglich.
  • 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. Sie können diese Ansicht dann für bestimmte Nutzer und Gruppen (Principals) freigeben, die die von Ihnen freigegebenen Daten ansehen 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. Verwenden Sie materialisierte Ansichten als Tool zur Leistungsoptimierung für bestimmte Abfragemuster mit hohem Traffic, die eine umfangreiche Aggregation erfordern.

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

Nächste Schritte