使用 BigQuery 連接器啟動 BigQuery 工作時,工作流程可能不會自動等待工作完成。如果後續步驟取決於作業是否成功,您應實作輪詢機制。
許多 Workflows 連接器會傳回可輪詢的長時間執行的作業 (LRO) 資源。雖然部分連接器會傳回 Operation 類型的資源來代表 LRO,但 BigQuery 會使用 Job 資源來達到這個目的。其他服務 (例如 Cloud Build 或 Compute Engine) 則會傳回實際的 Operation 資源。如需 LRO 資源類型清單,請參閱支援的連接器。
自動輪詢
使用會傳回 LRO 資源的連接器方法 (例如 googleapis.bigquery.v2.jobs.insert) 時,您可以自動輪詢 BigQuery 工作是否完成。
使用這類連接器方法時,Workflows 會封鎖工作流程執行作業,直到作業成功或失敗為止。您可以使用 connector_params 欄位自訂輪詢行為,包括總逾時和狀態檢查頻率。詳情請參閱「叫用連接器呼叫」。
舉例來說,下列工作流程示範如何使用 jobs.insert 方法啟動 BigQuery 工作,並使用自訂設定 (而非預設設定) 的政策,設定工作的輪詢作業:
YAML
JSON
手動輪詢
自動輪詢僅適用於傳回 LRO 資源的方法。標準同步方法 (例如 googleapis.bigquery.v2.jobs.query) 不支援自動輪詢,如果查詢時間超過內部 API 逾時時間,可能需要手動輪詢。
舉例來說,下列工作流程示範如何使用 getQueryResults 方法,直接在工作流程中輪詢 BigQuery 工作是否完成: