Obtenir des informations sur les vues

Ce document explique comment obtenir des informations ou des métadonnées sur des vues dans BigQuery.

Vous pouvez obtenir des métadonnées de vue selon les méthodes suivantes :

  • Utilisation de la console GCP ou de l'interface utilisateur Web classique de BigQuery
  • Utilisation de la commande bq show de la CLI
  • Appel de la méthode API tables.get
  • Interrogation des vues INFORMATION_SCHEMA (version bêta)

Autorisations requises

Pour obtenir des informations sur des vues, vous devez disposer du rôle READER au niveau de l'ensemble de données ou détenir au niveau du projet un rôle IAM qui inclut les autorisations bigquery.tables.get. Si vous disposez des autorisations bigquery.tables.get au niveau du projet, vous pouvez obtenir des informations sur toutes les vues du projet. Tous les rôles IAM prédéfinis au niveau du projet incluent les autorisations bigquery.tables.get, à l'exception de bigquery.jobUser et bigquery.user.

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur affecté au rôle bigquery.user peut obtenir des informations sur les vues des ensembles de données qu'il crée. Lorsqu'un utilisateur détenant le rôle bigquery.user crée un ensemble de données, il bénéficie d'un accès OWNER à celui-ci. Un accès OWNER à un ensemble de données confère à l'utilisateur un contrôle total sur cet ensemble et sur toutes les vues qu'il contient.

Pour en savoir plus sur les autorisations et les rôles IAM dans BigQuery, consultez la page Contrôle des accès. Pour en savoir plus sur les rôles au niveau de l'ensemble de données, consultez la section Rôles primitifs pour les ensembles de données.

Obtenir des informations sur la vue

Le processus permettant d'obtenir des informations sur les vues est le même que pour les tables.

Pour obtenir des informations sur les vues, procédez comme suit :

Console

  1. Développez votre ensemble de données.

  2. Cliquez sur le nom de la vue.

  3. Cliquez sur Details (Détails). L'onglet Details (Détails) affiche la description de la vue, ses informations et la requête SQL qui la définit.

    Afficher les détails

Interface utilisateur classique

  1. Développez votre ensemble de données.

  2. Cliquez sur le nom de la vue.

  3. Cliquez sur Détails. La page View Details (Détails de la vue) affiche la description de la vue, les informations de vue et la requête SQL qui définit la vue.

    Afficher les détails

Ligne de commande

Exécutez la commande bq show. Vous pouvez contrôler la sortie à l'aide de l'indicateur --format. Si vous souhaitez obtenir des informations sur une vue d'un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données, au format suivant : [PROJECT_ID]:[DATASET].

bq show --format=prettyjson [PROJECT_ID]:[DATASET].[VIEW]

Où :

  • [PROJECT_ID] est l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données.
  • [VIEW] est le nom de la vue.

Exemples :

Saisissez la commande suivante pour afficher des informations sur myview dans l'ensemble de données mydataset de votre projet par défaut.

bq show --format=prettyjson mydataset.myview

Saisissez la commande suivante pour afficher des informations sur myview dans l'ensemble de données mydataset de myotherproject.

bq show --format=prettyjson myotherproject:mydataset.myview

API

Appelez la méthode tables.get et indiquez tous les paramètres pertinents.

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}
fmt.Printf("View %s, query: %s\n", view.FullyQualifiedName(), meta.ViewQuery)

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# shared_dataset_id = 'my_shared_dataset'

view_ref = client.dataset(shared_dataset_id).table("my_shared_view")
view = client.get_table(view_ref)  # API Request

# Display view properties
print("View at {}".format(view.full_table_id))
print("View Query:\n{}".format(view.view_query))

INFORMATION_SCHEMA (version bêta)

INFORMATION_SCHEMA est une série de vues offrant un accès aux métadonnées sur les ensembles de données, les tables et les vues.

Vue VIEWS

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.

Les requêtes exécutées sur la vue INFORMATION_SCHEMA.VIEWS doivent avoir un qualificatif d'ensemble de données. L'utilisateur qui soumet la requête doit avoir accès à l'ensemble de données contenant les vues.

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
TABLE_NAME STRING Nom de la vue, également appelé id
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 en SQL standard ; NO si useLegacySql est défini sur true

Pour en savoir plus sur les propriétés des tables et des vues, consultez la page relative à la ressource de table dans la documentation de l'API REST.

Exemples

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 l'ensemble de données mydataset de votre projet par défaut (myproject).

Les requêtes exécutées sur la vue INFORMATION_SCHEMA.VIEWS doivent avoir un qualificatif d'ensemble de données. L'utilisateur qui soumet la requête doit avoir accès à l'ensemble de données contenant les vues.

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.

Pour exécuter la requête :

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.

    Accéder à l'UI Web de BigQuery

  2. Saisissez la requête SQL standard suivante dans la zone Éditeur de requête. INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans la console GCP.

    SELECT
     * EXCEPT(check_option)
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    
  3. Cliquez sur Exécuter.

Ligne de commande

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'indicateur --nouse_legacy_sql ou --use_legacy_sql=false. La syntaxe SQL standard est requise pour les requêtes INFORMATION_SCHEMA.

Pour exécuter la requête, saisissez la commande suivante :

bq query --nouse_legacy_sql \
'SELECT * EXCEPT(check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS'

Les résultats doivent se présenter sous la forme suivante :

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | 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 l'ensemble de données mydataset de votre projet par défaut (myproject).

Les requêtes exécutées sur la vue INFORMATION_SCHEMA.VIEWS doivent avoir un qualificatif d'ensemble de données. L'utilisateur qui soumet la requête doit avoir accès à l'ensemble de données contenant les vues.

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.

Pour exécuter la requête :

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.

    Accéder à l'UI Web de BigQuery

  2. Saisissez la requête SQL standard suivante dans la zone Éditeur de requête. INFORMATION_SCHEMA requiert la syntaxe SQL standard. Le langage SQL standard est la syntaxe par défaut dans la console GCP.

    SELECT
     table_name, view_definition, use_standard_sql
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    WHERE
     table_name="myview"
    
  3. Cliquez sur Exécuter.

Ligne de commande

Exécutez la commande query, puis spécifiez la syntaxe SQL standard à l'aide de l'indicateur --nouse_legacy_sql ou --use_legacy_sql=false. La syntaxe SQL standard est requise pour les requêtes INFORMATION_SCHEMA.

Pour exécuter la requête, saisissez la commande suivante :

bq query --nouse_legacy_sql \
'SELECT table_name, view_definition, use_standard_sql FROM mydataset.INFORMATION_SCHEMA.VIEWS WHERE table_name="myview"'

Les résultats doivent se présenter sous la forme suivante :

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

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.