Ansicht MATERIALIZED_VIEWS

Die Ansicht INFORMATION_SCHEMA.MATERIALIZED_VIEWS enthält den Status zu materialisierten Ansichten.

Erforderliche Berechtigungen

Um die Berechtigungen zu erhalten, die Sie zum Abfragen der INFORMATION_SCHEMA.MATERIALIZED_VIEWS-Ansicht brauchen, müssen Sie Ihren Administrator bitten, Ihnen die IAM-Rolle BigQuery Metadata Viewer (roles/bigquery.metadataViewer) für Ihr Projekt oder Dataset zu gewähren. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Abfragen der Ansicht INFORMATION_SCHEMA.MATERIALIZED_VIEWS erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Zum Abfragen der Ansicht INFORMATION_SCHEMA.MATERIALIZED_VIEWS sind die folgenden Berechtigungen erforderlich:

  • bigquery.tables.get
  • bigquery.tables.list

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.

Schema

Wenn Sie die Ansicht INFORMATION_SCHEMA.MATERIALIZED_VIEWS abfragen, wird im Ergebnis jede materialisierte Ansicht in einem Dataset in einer eigenen Zeile dargestellt.

Die Ansicht INFORMATION_SCHEMA.MATERIALIZED_VIEWS hat das folgende Schema:

Spaltenname Datentyp Wert
TABLE_CATALOG STRING Der Name des Projekts, zu dem das Dataset gehört. Auch als projectId bezeichnet.
TABLE_SCHEMA STRING Der Name des Datasets, das die materialisierte Ansicht enthält Auch als datasetId bezeichnet.
TABLE_NAME STRING Der Name der materialisierten Ansicht. Auch als tableId bezeichnet.
LAST_REFRESH_TIME TIMESTAMP Der Zeitpunkt, zu dem diese materialisierte Ansicht zuletzt aktualisiert wurde.
REFRESH_WATERMARK TIMESTAMP Das Aktualisierungswasserzeichen der materialisierten Ansicht. Die Daten, die bis zu diesem Zeitpunkt in den Basistabellen der materialisierten Ansicht enthalten sind, sind im Cache der materialisierten Ansicht enthalten.
LAST_REFRESH_STATUS RECORD Fehlerergebnis des letzten automatischen Aktualisierungsjobs als ErrorProto-Objekt. Falls vorhanden, weist dies darauf hin, dass die letzte automatische Aktualisierung nicht erfolgreich war.

Bereich und Syntax

Für Abfragen dieser Ansicht muss ein Dataset- oder Regions-Qualifier verwendet werden. Für Abfragen mit einem Dataset-Qualifier benötigen Sie Berechtigungen für das Dataset. Für Abfragen mit einem Regions-Qualifier müssen Sie Berechtigungen für das Projekt haben. Weitere Informationen finden Sie unter Syntax. In der folgenden Tabelle werden die Regions- und Ressourcenbereiche für diese Ansicht erläutert:

Ansichtsname Ressourcenbereich Regionsbereich
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS auf Projektebene REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_VIEWS Dataset-Ebene Dataset-Standort
Dabei gilt:

  • Optional: PROJECT_ID: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
  • REGION: ist ein beliebiger Dataset-Regionsname. Beispiel: region-us
  • DATASET_ID: die ID Ihres Datasets. Weitere Informationen finden Sie unter Dataset-Qualifier.

Beispiel:

-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;

-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;

Beispiele

Beispiel 1:

Im folgenden Beispiel werden alle fehlerhaften materialisierten Ansichten aus der Ansicht INFORMATION_SCHEMA.MATERIALIZED_VIEWS abgerufen. Gibt die materialisierten Ansichten mit Nicht-NULL-last_refresh_status-Werten in mydataset in Ihrem Standardprojekt myproject zurück.

Dem Dataset fügen Sie die Projekt-ID im folgenden Format hinzu, um die Abfrage für ein anderes Projekt als Ihr Standardprojekt auszuführen: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS; beispielsweise `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS.

SELECT
  table_name, last_refresh_status
FROM
  mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
WHERE
  last_refresh_status IS NOT NULL;

Das Ergebnis sieht etwa so aus:

  +---------------+---------------------------------------------------------------------+
  |  table_name   |                        last_refresh_status                          |
  +---------------------------------------------------------------------+---------------+
  |  myview       |   {"reason":"invalidQuery","location":"query","message":"..."}      |
  +---------------------------------------------------------------------+---------------+
  

Beispiel 2:

Im folgenden Beispiel werden die last_refresh_time und die refresh_watermark der materialisierten Ansicht myview in mydataset im Standardprojekt myproject abgerufen. Das Ergebnis zeigt, wann die materialisierte Aktualisierung zuletzt aktualisiert wurde und bis Daten der Basistabellen im Cache der materialisierten Ansicht erfasst werden.

Dem Dataset fügen Sie die Projekt-ID im folgenden Format hinzu, um die Abfrage für ein anderes Projekt als Ihr Standardprojekt auszuführen: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS; beispielsweise `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS.

SELECT
  table_name, last_refresh_time, refresh_watermark
FROM
  mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
WHERE
  table_name = 'myview';

Das Ergebnis sieht etwa so aus:

  +---------------+------------------------------------------------+
  |  table_name   |  last_refresh_time     | refresh_watermark     |
  +---------------+------------------------------------------------+
  |  myview       | 2023-02-22 19:37:17    | 2023-03-08 16:52:57   |
  +---------------+------------------------------------------------+