Vue VIEWS

La vue INFORMATION_SCHEMA.VIEWS contient des métadonnées sur les vues.

Autorisations requises

Pour obtenir des métadonnées de vue, vous avez besoin des autorisations IAM (Identity and Access Management) suivantes :

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

Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour obtenir les métadonnées d'une vue :

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

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.VIEWS, les résultats de la requête contiennent une ligne pour chaque vue d'un ensemble de données.

La vue INFORMATION_SCHEMA.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
TABLE_SCHEMA STRING Nom de l'ensemble de données contenant la vue, également appelé id de l'ensemble de données
TABLE_NAME STRING Nom de la vue, également appelé id de la table
VIEW_DEFINITION STRING Requête SQL qui définit la vue
CHECK_OPTION STRING La valeur renvoyée est toujours NULL
USE_STANDARD_SQL STRING YES si la vue a été créée à l'aide d'une requête GoogleSQL ; NO si useLegacySql est défini sur true

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.VIEWS Niveau Projet REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VIEWS Niveau de l'ensemble de données Emplacement d'un ensemble de données
Remplacez les éléments suivants :

Par exemple :

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

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

Examples

Exemple 1 :

L'exemple suivant récupère toutes les colonnes de la vue INFORMATION_SCHEMA.VIEWS, à l'exception de check_option qui est réservée en vue d'une utilisation ultérieure. Les métadonnées renvoyées concernent toutes les vues de 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.view. Par exemple : `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS.

SELECT
  * EXCEPT (check_option)
FROM
  mydataset.INFORMATION_SCHEMA.VIEWS;

Le résultat ressemble à ce qui suit :

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | table_catalog  | table_schema  |  table_name   |                        view_definition                              | use_standard_sql |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | myproject      | mydataset     | myview        | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO               |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  

Notez que les résultats montrent que cette vue a été créée à l'aide d'une requête en ancien SQL.

Exemple 2 :

L'exemple suivant récupère la requête SQL et la syntaxe de requête utilisées pour définir myview 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.view. Par exemple : `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS.

SELECT
  table_name, view_definition, use_standard_sql
FROM
  mydataset.INFORMATION_SCHEMA.VIEWS
WHERE
  table_name = 'myview';

Le résultat ressemble à ce qui suit :

  +---------------+---------------------------------------------------------------+------------------+
  |  table_name   |                        view_definition                        | use_standard_sql |
  +---------------+---------------------------------------------------------------+------------------+
  | myview        | SELECT column1, column2, column3 FROM mydataset.mytable       | YES              |
  +---------------+---------------------------------------------------------------+------------------+
  

Notez que les résultats montrent que cette vue a été créée à l'aide d'une requête en GoogleSQL.