Vue MATERIALIZED_VIEWS
La vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
contient l'état des vues matérialisées.
Autorisations requises
Pour obtenir les autorisations nécessaires pour interroger la vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de métadonnées BigQuery (roles/bigquery.metadataViewer
) sur votre projet ou votre ensemble de données.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour interroger la vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour interroger la vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
:
-
bigquery.tables.get
-
bigquery.tables.list
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.Schéma
Lorsque vous interrogez la vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, les résultats de la requête contiennent une ligne pour chaque vue d'un ensemble de données.
La vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
TABLE_CATALOG |
STRING |
Nom du projet qui contient l'ensemble de données. Également appelé projectId . |
TABLE_SCHEMA |
STRING |
Nom de l'ensemble de données contenant la vue matérialisée Également appelé datasetId . |
TABLE_NAME |
STRING |
Nom de la vue matérialisée. Également appelé tableId . |
LAST_REFRESH_TIME |
TIMESTAMP |
Date et heure de la dernière actualisation de la vue matérialisée. |
REFRESH_WATERMARK |
TIMESTAMP |
Filigrane d'actualisation de la vue matérialisée. Les données contenues dans les tables de base de vue matérialisée jusqu'à présent sont incluses dans le cache de la vue matérialisée. |
LAST_REFRESH_STATUS |
RECORD |
Résultat d'erreur de la dernière tâche d'actualisation automatique en tant qu'objet ErrorProto. Si ce champ est présent, indique que la dernière actualisation automatique a échoué. |
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un ensemble de données ou un qualificatif de région. Pour les requêtes avec un qualificatif d'ensemble de données, vous devez disposer d'autorisations pour l'ensemble de données. Pour les requêtes avec un qualificatif de région, vous devez disposer des autorisations nécessaires sur le projet. Pour en savoir plus, consultez la section Syntaxe. Le tableau suivant explique la portée des régions et des ressources pour cette vue :
Nom de la vue | Champ d'application de la ressource | Champ d'application de la région |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS |
Niveau Projet | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_VIEWS |
Niveau de l'ensemble de données | Emplacement d'un ensemble de données |
Facultatif : PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
REGION
: tout nom de région d'ensemble de données. Exemple :`region-us`
.DATASET_ID
: ID de votre ensemble de données. Pour en savoir plus, consultez la section Qualificatif d'ensemble de données.
Par exemple :
-- 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;
Exemples
Exemple 1 :
L'exemple suivant récupère toutes les vues matérialisées non opérationnelles à partir de la vue INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Il renvoie les vues matérialisées avec des valeurs last_refresh_status
non NULL
dans mydataset
dans votre projet par défaut (myproject
).
Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données, en respectant le format suivant : `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Par exemple : `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;
Le résultat ressemble à ce qui suit :
+---------------+---------------------------------------------------------------------+ | table_name | last_refresh_status | +---------------------------------------------------------------------+---------------+ | myview | {"reason":"invalidQuery","location":"query","message":"..."} | +---------------------------------------------------------------------+---------------+
Exemple 2 :
L'exemple suivant récupère les valeurs last_refresh_time
et refresh_watermark
de la vue matérialisée myview
dans mydataset
de votre projet par défaut (myproject
). Le résultat indique la date de la dernière actualisation de la vue matérialisée et la date de collecte des données des tables de base dans le cache de la vue matérialisée.
Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données, en respectant le format suivant : `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Par exemple : `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
.
SELECT table_name, last_refresh_time, refresh_watermark FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE table_name = 'myview';
Le résultat ressemble à ce qui suit :
+---------------+------------------------------------------------+ | table_name | last_refresh_time | refresh_watermark | +---------------+------------------------------------------------+ | myview | 2023-02-22 19:37:17 | 2023-03-08 16:52:57 | +---------------+------------------------------------------------+