使用 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 作业的完成情况: