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 auf Projekte, Ordner und Organisationen 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 der letzten Aktualisierung dieser materialisierten Ansicht.
REFRESH_WATERMARK TIMESTAMP Das Aktualisierungswasserzeichen der materialisierten Ansicht. Die bis zu diesem Zeitpunkt in den Basistabellen der materialisierten Ansicht enthaltenen Daten 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
Ersetzen Sie Folgendes:

  • Optional: PROJECT_ID: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.

    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. Er 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 last_refresh_time und refresh_watermark der materialisierten Ansicht myview in mydataset in Ihrem Standardprojekt myproject abgerufen. Das Ergebnis zeigt, wann die materialisierte Ansicht zuletzt aktualisiert wurde und bis zu dem Zeitpunkt Daten der Basistabellen im Cache der materialisierten Ansicht erfasst wurden.

    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   |
      +---------------+------------------------------------------------+