Lorsque vous exécutez une requête dans l'outil de ligne de commande bq
, vous pouvez utiliser l'option --dry_run
pour estimer le nombre d'octets lus par la requête. Vous pouvez également utiliser le paramètre dryRun
lorsque vous envoyez une tâche de requête à l'aide de l'API ou des bibliothèques clientes.
L'estimation renvoyée par la simulation vous permettra de calculer les coûts de requête dans le simulateur de coût. L'exécution d'une simulation ne vous est pas facturée.
Autorisations requises
Pour exécuter une tâche de requête, vous devez disposer au minimum des autorisations bigquery.jobs.create
. Ensuite, pour que cette tâche de requête aboutisse, vous devez également disposer d'un accès aux tables ou aux vues référencées par la requête. L'accès aux tables ou aux vues peut être accordé aux niveaux suivants, classés ici selon la plage de ressources autorisée (de la plus grande à la plus petite) :
- À un niveau élevé dans la hiérarchie des ressources Google Cloud (par exemple, au niveau du projet, du dossier ou de l'organisation)
- Au niveau d'un ensemble de données
- Au niveau de la table
Les rôles IAM prédéfinis suivants incluent les autorisations bigquery.jobs.create
:
bigquery.user
bigquery.jobUser
bigquery.admin
En outre, si un utilisateur possède des autorisations bigquery.datasets.create
, lorsqu'il crée un ensemble de données, il obtient également le rôle bigquery.dataOwner
qui lui permet d'y accéder.
L'accès bigquery.dataOwner
permet à l'utilisateur d'interroger des tables et des vues de l'ensemble de données.
Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Effectuer des simulations
Vous pouvez effectuer une simulation de tâche de requête de plusieurs façons :
- En utilisant l'option
--dry_run
avec la commandequery
dans l'outil de ligne de commandebq
- En définissant le paramètre
dryRun
dans la configuration de la tâche lorsque vous utilisez l'API ou les bibliothèques clientes
Effectuer une simulation
Pour effectuer une simulation, procédez comme suit :
Console
Actuellement, vous ne pouvez pas effectuer de simulation à l'aide de Cloud Console.
bq
Saisissez une requête semblable à celle-ci à l'aide de l'option --dry_run
.
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
La commande produit la réponse suivante :
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
Pour effectuer une simulation avec l'API, envoyez une tâche de requête avec la valeur dryRun
définie sur true
dans le type JobConfiguration.
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 de l'API BigQuery en langage Go.
Java
Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java 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 de l'API BigQuery en langage Java.
Python
Pour effectuer une simulation avec la bibliothèque cliente Python, définissez la propriété QueryJobConfig.dry_run sur True
.
La méthode Client.query() renvoie toujours une tâche QueryJob terminée lorsque vous lui transmettez une configuration de requête simulée.
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 de l'API BigQuery Python.