Exécuter des tâches de manière automatisée
Pour exécuter une tâche BigQuery de manière automatisée à l'aide de l'API REST ou des bibliothèques clientes, procédez comme suit :
- Appelez la méthode
jobs.insert
. - Interrogez régulièrement la ressource de tâche et examinez la propriété de l'état pour savoir quand la tâche est terminée.
- Vérifiez que la tâche a bien été exécutée.
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.
Autorisations requises
Pour exécuter une tâche BigQuery, vous avez besoin de l'autorisation IAM bigquery.jobs.create
.
Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour exécuter une tâche :
roles/bigquery.user
roles/bigquery.jobUser
roles/bigquery.admin
De plus, lorsque vous créez une tâche, vous recevez automatiquement les autorisations suivantes pour cette tâche :
bigquery.jobs.get
bigquery.jobs.update
Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Tâches en cours d'exécution
Pour exécuter une tâche de manière automatisée, procédez comme suit :
Démarrez la tâche en appelant la méthode
jobs.insert
. Lorsque vous appelez la méthodejobs.insert
, incluez une représentation de la ressource de tâche.Dans la section
configuration
de la ressource de tâche, incluez une propriété enfant qui spécifie le type de tâche :load
(charger),query
(interroger),extract
(extraire) oucopy
(copier).Après avoir appelé la méthode
jobs.insert
, vérifiez l'état de la tâche en appelantjobs.get
à l'aide de l'ID et l'emplacement de la tâche, puis vérifiez la valeurstatus.state
pour connaître l'état de la tâche. Lorsquestatus.state
est défini surDONE
, la tâche a cessé de s'exécuter. À noter cependant qu'un étatDONE
ne signifie pas que la tâche a bien été exécutée, mais uniquement qu'elle n'est plus en cours d'exécution.Vérifiez que votre tâche a bien été exécutée. Si la propriété de la tâche est définie sur
errorResult
, la tâche a échoué. La propriétéstatus.errorResult
contient des informations décrivant les problèmes liés à la tâche dont l'exécution a échoué. Si la propriétéstatus.errorResult
est absente, la tâche a bien été exécutée. Toutefois, des erreurs non fatales, telles que des problèmes d'importation de lignes lors d'une tâche de chargement, ont pu se produire. Les erreurs non fatales sont renvoyées dans la listestatus.errors
de la tâche.
Exécuter des tâches à l'aide des bibliothèques clientes
Pour créer et exécuter une tâche à l'aide des bibliothèques clientes Google Cloud pour BigQuery, procédez comme suit :
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# 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 C#.
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 les bibliothèques clientes.
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 les bibliothèques clientes.
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 les bibliothèques clientes.
Ajouter des libellés à une tâche
Vous pouvez ajouter des étiquettes aux jobs de requêtes via l'option --label
de l'outil de ligne de commande bq. L'outil bq n'accepte l'ajout d'étiquettes que pour les jobs de requête.
Vous pouvez également ajouter un libellé à une tâche envoyée via l'API en spécifiant la propriété labels
dans la configuration de la tâche lorsque vous appelez la méthode jobs.insert
. L'API peut être utilisée pour ajouter des libellés à tout type de tâche.
Vous ne pouvez pas ajouter de libellés à des tâches en attente, en cours ou terminées (ni mettre à jour les libellés).
Lorsque vous ajoutez une étiquette à une tâche, celle-ci est incluse dans vos données de facturation.
Pour en savoir plus, consultez la section Ajouter des libellés à une tâche.
Étape suivante
- Consultez la page Exécuter des requêtes pour obtenir un exemple de code qui démarre et interroge une tâche de requête.
- Pour plus d'informations sur la création d'une représentation de ressource de tâche, consultez la page de présentation des tâches dans la documentation de référence de l'API.