Gérer les vues
Ce document explique comment gérer les vues dans BigQuery. La gestion des vues BigQuery repose sur les actions suivantes :
Avant de commencer
Attribuez aux utilisateurs des rôles IAM (Identity and Access Management) incluant les autorisations nécessaires pour effectuer l'ensemble des tâches du présent document. Les autorisations requises pour effectuer une tâche (le cas échéant) sont répertoriées dans la section "Autorisations requises" de la tâche.
Mettre à jour une vue
Une fois que vous avez créé une vue, vous pouvez mettre à jour les propriétés suivantes :
Autorisations requises
Pour mettre à jour une vue, vous avez besoin des autorisations IAM suivantes :
bigquery.tables.update
bigquery.tables.get
Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour mettre à jour une vue :
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
En outre, si vous disposez de l'autorisation bigquery.datasets.create
, vous pouvez interroger les tables et les vues des ensembles de données que vous créez.
Si vous mettez à jour la requête SQL d'une vue, vous devez également être autorisé à interroger les tables référencées par la requête SQL.
Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Mettre à jour la requête SQL d'une vue
Vous pouvez mettre à jour la requête SQL utilisée pour définir une vue de plusieurs façons :
- En utilisant la console Google Cloud
- En exécutant la commande
bq update
de l'outil de ligne de commande bq - En appelant la méthode API
tables.patch
- En utilisant les bibliothèques clientes
Vous pouvez faire passer le dialecte SQL de l'ancien SQL vers GoogleSQL dans l'API ou l'outil de ligne de commande bq. Vous ne pouvez pas mettre à jour une vue en ancien SQL vers GoogleSQL dans la console Google Cloud.
Pour mettre à jour la requête SQL d'une vue :
Console
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la vue.
Cliquez sur l'onglet Détails.
Au-dessus de la zone Requête, cliquez sur le bouton Modifier la requête. Cliquez sur Open (Ouvrir) dans la boîte de dialogue qui apparaît.
Modifiez la requête SQL dans la zone de l'éditeur de requête, puis cliquez sur Save view (Enregistrer l'affichage).
Vérifiez que tous les champs sont corrects dans la boîte de dialogue Enregistrer l'affichage avant de cliquer sur Enregistrer.
bq
Exécutez la commande bq update
avec l'option --view
. Pour utiliser le langage GoogleSQL, ou pour faire passer le dialecte des requêtes de l'ancien SQL vers GoogleSQL, incluez l'option --use_legacy_sql
et définissez-la sur false
.
Si votre requête fait référence à des ressources externes de fonction définie par l'utilisateur, stockées dans Cloud Storage ou dans des fichiers locaux, spécifiez ces ressources à l'aide de l'option --view_udf_resource
. L'option --view_udf_resource
n'est pas présentée ici. Pour en savoir plus sur l'utilisation des fonctions définies par l'utilisateur, consultez la page Fonctions définies par l'utilisateur en GoogleSQL.
Si vous mettez à jour une vue dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : project_id:dataset
.
bq update \ --use_legacy_sql=false \ --view_udf_resource=path_to_file \ --view='query' \ project_id:dataset.view
Remplacez les éléments suivants :
- path_to_file : chemin de l'URI ou du système de fichiers local permettant d'accéder à un fichier de code, qui doit être chargé et évalué immédiatement en tant que ressource de fonction définie par l'utilisateur utilisée par la vue. Répétez l'option pour spécifier plusieurs fichiers.
- query : requête GoogleSQL valide.
- project_id : ID de votre projet.
- dataset : nom de l'ensemble de données contenant la vue que vous mettez à jour.
- view : nom de la vue que vous mettez à jour.
Exemples
Saisissez la commande suivante pour mettre à jour la requête SQL pour une vue nommée myview
dans mydataset
. mydataset
se trouve dans votre projet par défaut. L'exemple de requête utilisé pour mettre à jour la vue interroge les données de l'ensemble de données public Données sur les noms aux États-Unis.
bq update \
--use_legacy_sql=false \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC;' \
mydataset.myview
Saisissez la commande suivante pour mettre à jour la requête SQL pour une vue nommée myview
dans mydataset
. mydataset
se trouve dans myotherproject
, et non dans votre projet par défaut. L'exemple de requête utilisé pour mettre à jour la vue interroge les données de l'ensemble de données public Données sur les noms aux États-Unis.
bq update \
--use_legacy_sql=false \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC;' \
myotherproject:mydataset.myview
API
Pour mettre à jour une vue, appelez la méthode tables.patch
avec une ressource de table contenant une propriété view
mise à jour. Étant donné que la méthode tables.update
remplace l'intégralité de la ressource de table, la méthode tables.patch
est préférable.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Go.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Node.js.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Mettre à jour le délai d'expiration d'une vue
Vous pouvez définir un délai d'expiration par défaut des tables au niveau de l'ensemble de données (qui affecte à la fois les tables et les vues). Vous pouvez également définir le délai d'expiration d'une vue au moment de sa création, auquel cas le délai d'expiration par défaut des tables de l'ensemble de données est ignoré. Si vous ne définissez de délai d'expiration dans aucun de ces deux cas, la vue n'expire jamais et vous devez la supprimer manuellement.
À tout moment après la création de la vue, vous pouvez mettre à jour son délai d'expiration de plusieurs façons :
- En utilisant la console Google Cloud
- En utilisant une instruction LDD (langage de définition de données) écrite en syntaxe GoogleSQL
- En exécutant la commande
bq update
de l'outil de ligne de commande bq - En appelant la méthode API
tables.patch
- En utilisant les bibliothèques clientes
Pour mettre à jour le délai d'expiration d'une vue :
Console
Dans le volet de navigation, sélectionnez la vue.
Sur la page Détails de la vue, cliquez sur Détails.
À droite de la boîte de dialogue Informations sur la vue, cliquez sur l'icône de modification (le crayon).
Dans la boîte de dialogue Informations sur la vue, cliquez sur Spécifier une date dans la section Expiration de la vue.
Dans le sélecteur de date, saisissez la date et l'heure d'expiration, puis cliquez sur OK.
Cliquez sur Mettre à jour. Le délai d'expiration mis à jour apparaît dans la section Informations sur la vue.
SQL
Utilisez l'instruction LDD ALTER VIEW SET OPTIONS
:
Dans Google Cloud Console, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
ALTER VIEW DATASET_ID.MY_VIEW SET OPTIONS ( expiration_timestamp = TIMESTAMP('NEW_TIMESTAMP'));
Remplacez les éléments suivants :
- DATASET_ID : ID de l'ensemble de données contenant la vue.
- MY_VIEW : nom de la vue à mettre à jour.
- NEW_TIMESTAMP : une valeur TIMESTAMP.
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez la page Exécuter des requêtes interactives.
bq
Exécutez la commande bq update
avec l'option --expiration
. Si vous mettez à jour une vue dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : project_id:dataset
.
bq update \ --expiration integer \ project_id:dataset.view
Remplacez les éléments suivants :
- integer : durée de vie par défaut (en secondes) de la table. La valeur minimale est de 3 600 secondes (une heure). Le délai d'expiration correspond à l'heure actuelle plus la valeur entière.
- project_id : ID de votre projet.
- dataset : nom de l'ensemble de données contenant la vue que vous mettez à jour.
- view : nom de la vue que vous mettez à jour.
Exemples
Saisissez la commande suivante pour faire passer le délai d'expiration de myview
dans mydataset
à cinq jours (432 000 secondes). mydataset
se trouve dans votre projet par défaut.
bq update \
--expiration 432000 \
mydataset.myview
Saisissez la commande suivante pour faire passer le délai d'expiration de myview
dans mydataset
à cinq jours (432 000 secondes). mydataset
se trouve dans myotherproject
, et non dans votre projet par défaut.
bq update \
--expiration 432000 \
myotherproject:mydataset.myview
API
Appelez la méthode tables.patch
, puis utilisez la propriété expirationTime
de la ressource de table. Étant donné que la méthode tables.update
remplace l'intégralité de la ressource de table, la méthode tables.patch
est préférable. Lorsque vous utilisez l'API REST, le délai d'expiration de la vue est exprimé en millisecondes.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Go.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Node.js.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Python
Pour mettre à jour le délai d'expiration d'une vue, vous devez suivre la même procédure que pour mettre à jour celui d'une table.
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Mettre à jour la description d'une vue
Vous pouvez mettre à jour la description d'une vue de plusieurs façons :
- En utilisant la console Google Cloud
- En utilisant une instruction LDD (langage de définition de données) écrite en syntaxe GoogleSQL
- En exécutant la commande
bq update
de l'outil de ligne de commande bq - En appelant la méthode API
tables.patch
- En utilisant les bibliothèques clientes
Pour mettre à jour la description d'une vue :
Console
Vous ne pouvez pas ajouter de description lorsque vous créez une vue à l'aide de la console Google Cloud. Une fois la vue créée, vous pouvez ajouter une description sur la page Details (Détails).
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la vue.
Cliquez sur l'onglet Détails.
Cliquez sur l'icône en forme de crayon à côté de Description.
Saisissez une description dans la boîte de dialogue. Cliquez sur Mettre à jour pour enregistrer la nouvelle description.
SQL
Utilisez l'instruction LDD ALTER VIEW SET OPTIONS
:
Dans Google Cloud Console, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
ALTER VIEW DATASET_ID.MY_VIEW SET OPTIONS ( description = 'NEW_DESCRIPTION');
Remplacez les éléments suivants :
- DATASET_ID : ID de l'ensemble de données contenant la vue.
- MY_VIEW : nom de la vue à mettre à jour.
- NEW_DESCRIPTION : description de la nouvelle vue
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez la page Exécuter des requêtes interactives.
bq
Exécutez la commande bq update
avec l'option --description
. Si vous mettez à jour une vue dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : [PROJECT_ID]:[DATASET]
.
bq update \ --description "description" \ project_id:dataset.view
Remplacez les éléments suivants :
- description est le texte décrivant la vue, entre guillemets.
- project_id : ID de votre projet.
- dataset : nom de l'ensemble de données contenant la vue que vous mettez à jour.
- view : nom de la vue que vous mettez à jour.
Exemples
Saisissez la commande suivante pour remplacer la description de myview
dans mydataset
par "Description of myview". mydataset
se trouve dans votre projet par défaut.
bq update \
--description "Description of myview" \
mydataset.myview
Saisissez la commande suivante pour remplacer la description de myview
dans mydataset
par "Description of myview". mydataset
se trouve dans myotherproject
, et non dans votre projet par défaut.
bq update \
--description "Description of myview" \
myotherproject:mydataset.myview
API
Appelez la méthode tables.patch
, puis utilisez la propriété description
pour mettre à jour la description de la vue dans la ressource de table. Étant donné que la méthode tables.update
remplace l'intégralité de la ressource de table, la méthode tables.patch
est préférable.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Go.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Java
Pour mettre à jour la description d'une vue, vous devez suivre la même procédure que pour mettre à jour celle d'une table.
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Node.js.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Python
Pour mettre à jour la description d'une vue, vous devez suivre la même procédure que pour mettre à jour celle d'une table.
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.
Copier des vues
Actuellement, vous ne pouvez copier des vues qu'avec la console Google Cloud.
L'outil de ligne de commande bq, l'API REST et les bibliothèques clientes ne permettent pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour vous aider à recréer la vue, vous pouvez copier la requête SQL correspondante à l'aide de l'outil de ligne de commande bq.
Autorisations requises
Pour copier une vue dans la console Google Cloud, vous devez disposer d'autorisations IAM sur les ensembles de données source et de destination.
Vous avez besoin des éléments suivants sur l'ensemble de données source :
bigquery.tables.get
bigquery.tables.getData
(obligatoire pour accéder aux tables référencées par la requête SQL de la vue)
Vous avez besoin des éléments suivants sur l'ensemble de données de destination :
bigquery.tables.create
(vous permet de créer une copie de la vue dans l'ensemble de données de destination)
Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour copier une vue :
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
En outre, si vous disposez de l'autorisation bigquery.datasets.create
, vous pouvez copier des vues dans les ensembles de données que vous créez. Vous devez également accéder à l'ensemble de données de destination, sauf si vous l'avez créé.
Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Copier une vue
Pour copier une vue, procédez comme suit :
Console
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la vue.
Dans le panneau de détails, cliquez sur Copier une vue.
Dans la boîte de dialogue Copy view (Copier la vue) :
- Dans la section Source, vérifiez que les champs Project name (Nom du projet), Dataset name (Nom de l'ensemble de données) et Table name (Nom de la table) sont corrects.
Dans la section Destination :
- Dans Project name (Nom du projet), choisissez le projet dans lequel vous souhaitez copier la vue.
- Dans Dataset name (Nom de l'ensemble de données), choisissez l'ensemble de données qui contiendra la vue copiée.
- Dans Table name (Nom de la table), saisissez le nom de la vue. Vous pouvez renommer la vue en saisissant un nouveau nom dans le champ de saisie. Si vous décidez de saisir un nouveau nom, celui-ci doit respecter les règles de dénomination des vues.
Cliquez sur Copy (Copier).
bq
L'outil de ligne de commande bq ne permet pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour vous aider à recréer la vue, vous pouvez copier la requête SQL utilisée pour la définir.
Pour copier la requête SQL qui définit une vue, exécutez la commande bq show
. L'indicateur --format
peut être utilisé pour contrôler la sortie. Si vous souhaitez obtenir des informations sur une vue se trouvant dans un projet autre que celui par défaut, ajoutez l'ID du projet au nom de l'ensemble de données, en respectant le format suivant : project_id:dataset
. Pour écrire les propriétés de la vue dans un fichier, ajoutez > path_to_file
à la commande.
bq show \ --format=prettyjson \ project_id:dataset.view > path_to_file
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.
- path_to_file est le chemin d'accès au fichier de sortie sur votre ordinateur local.
Exemples :
Saisissez la commande suivante pour afficher des informations sur myview
dans mydataset
. mydataset
se trouve dans votre projet par défaut.
bq show --format=prettyjson mydataset.myview
Saisissez la commande suivante pour afficher des informations sur myview
dans mydataset
. mydataset
se trouve dans myotherproject
, et non dans votre projet par défaut.
Les propriétés de la vue sont écrites dans un fichier local : /tmp/myview.json
.
bq show \
--format=prettyjson \
myotherproject:mydataset.myview > /tmp/myview.json
API
L'API REST ne permet pas de copier une vue. À la place, vous devez recréer la vue dans l'ensemble de données cible. Pour en savoir plus sur la création d'une vue à l'aide de l'API REST, consultez la section Créer une vue.
Renommer une vue
Actuellement, vous ne pouvez renommer une vue que si vous la copiez à l'aide de la console Google Cloud. Pour découvrir comment renommer une vue au moment de la copie, reportez-vous à la section Copier une vue.
L'outil de ligne de commande bq, l'API ou les bibliothèques clientes ne permettent pas de modifier le nom d'une vue existante. À la place, vous devez recréer la vue avec le nouveau nom.
Supprimer des vues
Vous pouvez supprimer une vue à l'aide des méthodes suivantes :