使用 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 超时时间,可能需要
手动轮询。
例如,以下工作流演示了如何轮询以了解 BigQuery 作业的完成情况
,方法是直接在工作流中使用
getQueryResults 方法: