Lorsque vous exécutez une requête dans la CLI, vous pouvez utiliser l'indicateur --dry_run
pour estimer le nombre d'octets lus par la requête. Vous pouvez également définir 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 au minimum disposer des autorisations bigquery.jobs.create
. Ensuite, pour que cette tâche de requête aboutisse, vous devez également disposer d'un accès aux ensembles de données contenant les tables ou les vues référencées par la requête. Pour plus d'informations sur les contrôles d'accès aux ensembles de données, consultez la page Contrôler l'accès aux ensembles de données.
Vous trouverez ci-dessous les rôles Cloud IAM prédéfinis qui 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
donne à l'utilisateur la possibilité d'interroger des tables et des vues dans l'ensemble de données.
Pour en savoir plus sur les rôles Cloud IAM dans BigQuery, consultez la page Rôles et autorisations prédéfinis.
Effectuer des simulations
Vous pouvez effectuer une simulation de tâche de requête de plusieurs façons :
- En utilisant l'indicateur
--dry_run
avec la commandequery
dans l'interface de ligne de commande - 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 la console GCP.
UI classique
Actuellement, vous ne pouvez pas effectuer de simulation à l'aide de l'interface utilisateur Web.
CLI
Saisissez une requête semblable à celle-ci à l'aide de l'indicateur --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 à l'aide de l'API, envoyez une tâche de requête en définissant le paramètre dryRun
sur true
dans la configuration de la tâche.
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 Go.
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 simulation de configuration de requête.
Avant d'essayer cet exemple, suivez les instructions de configuration de Python décrites 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.