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