Wenn Sie einen BigQuery-Job mit dem BigQuery-Connector starten, wartet Ihr Workflow möglicherweise nicht automatisch auf den Abschluss des Jobs. Wenn nachfolgende Schritte vom Erfolg des Jobs abhängen, sollten Sie einen Polling-Mechanismus implementieren.
Viele Workflows-Connectors geben eine Vorgangsressource mit langer Ausführungszeit (LRO) zurück, die abgefragt werden kann. Während einige Connectors eine Ressource vom Typ Operation zurückgeben, um einen LRO darzustellen, verwendet BigQuery dafür eine Job-Ressource. Andere Dienste wie Cloud Build oder Compute Engine geben eine tatsächliche Operation-Ressource zurück. Eine Liste der LRO-Ressourcentypen finden Sie unter Unterstützte Connectors.
Automatische Abfragen
Sie können automatisch abfragen, ob ein BigQuery-Job abgeschlossen ist, wenn Sie Connectormethoden verwenden, die eine LRO-Ressource zurückgeben, z. B. googleapis.bigquery.v2.jobs.insert.
Wenn Sie eine solche Connectormethode verwenden, wird die Workflowausführung in Workflows blockiert, bis der Vorgang erfolgreich abgeschlossen wird oder fehlschlägt. Mit dem Feld connector_params können Sie das Polling-Verhalten anpassen, einschließlich des gesamten Zeitlimits und der Häufigkeit der Statusprüfungen. Weitere Informationen finden Sie unter Connector-Aufruf aufrufen.
Im folgenden Workflow wird beispielsweise gezeigt, wie Sie einen BigQuery-Job mit der Methode jobs.insert starten und das Polling des Jobs mit einer Richtlinie konfigurieren, die benutzerdefinierte Einstellungen anstelle der Standardeinstellungen verwendet:
YAML
JSON
Manuelle Abfrage
Das automatische Polling gilt nur für Methoden, die eine LRO-Ressource zurückgeben. Standardmäßige synchrone Methoden wie googleapis.bigquery.v2.jobs.query unterstützen kein automatisches Polling und erfordern möglicherweise manuelles Polling, wenn die Abfrage länger als das interne API-Zeitlimit dauert.
Im folgenden Workflow wird beispielsweise gezeigt, wie Sie direkt im Workflow mit der Methode getQueryResults abfragen, ob ein BigQuery-Job abgeschlossen ist: