Lorsque vous lancez une tâche BigQuery à l'aide du connecteur BigQuery, votre workflow n'attend peut-être pas automatiquement la fin de la tâche. Si les étapes suivantes dépendent de la réussite de la tâche, vous devez implémenter un mécanisme d'interrogation.
De nombreux connecteurs Workflows renvoient une
ressource d'opération de longue durée (LRO) qui peut
être interrogée. Alors que certains connecteurs renvoient une ressource de type Operation pour
représenter une LRO, BigQuery utilise une
Job ressource
à cet effet. D'autres services, tels que Cloud Build ou Compute Engine, renvoient une ressource Operation réelle. Pour obtenir la liste des types de ressources LRO, consultez la section
Connecteurs compatibles.
Interrogation automatique
Vous pouvez interroger automatiquement la fin d'une tâche BigQuery
lorsque vous utilisez des méthodes de connecteur qui renvoient une ressource LRO, telle que
googleapis.bigquery.v2.jobs.insert.
Lorsque vous utilisez une telle méthode de connecteur, Workflows bloque l'exécution du workflow jusqu'à ce que l'opération aboutisse ou échoue. Le champ connector_params vous permet de personnaliser le comportement d'interrogation, y compris le délai d'expiration total et la fréquence des vérifications d'état. Pour en savoir plus, consultez la section
Appeler un connecteur.
Par exemple, le workflow suivant montre comment démarrer une tâche BigQuery à l'aide de la méthode jobs.insert et comment configurer l'interrogation de la tâche avec une stratégie qui utilise des paramètres personnalisés plutôt que les paramètres par défaut :
YAML
JSON
Interrogation manuelle
L'interrogation automatique ne s'applique qu'aux méthodes qui renvoient une ressource LRO. Les méthodes synchrones standards
telles que
googleapis.bigquery.v2.jobs.query
ne sont pas compatibles avec l'interrogation automatique et peuvent nécessiter
une interrogation manuelle si la requête prend
plus de temps que le délai d'expiration interne de l'API.
Par exemple, le workflow suivant montre comment interroger la fin
d'une tâche BigQuery directement dans le workflow à l'aide de la
getQueryResults méthode :