验证BigQuery存储过程执行成功:Eventarc触发Cloud Run的疑问
关于BigQuery作业完成事件的成功判断方案
- 可以通过判断
protoPayload.serviceData.jobCompletedEvent.job.jobStatus.error为空来确认存储过程执行成功。BigQuery作业执行成功时,该错误字段会返回空值;若作业执行失败(比如语法错误、权限不足、数据写入失败等),这个字段会包含具体的错误信息。 - 为了更严谨,建议同时校验
protoPayload.serviceData.jobCompletedEvent.job.jobStatus.state字段的值为"DONE"。因为作业被取消或终止时,error字段也可能为空,但state会是"CANCELLED"或其他非DONE状态,双重判断能避免误触发。 - 如果你需要获取Job ID,在
jobservice.jobcompleted事件中可以从protoPayload.serviceData.jobCompletedEvent.job.jobName.jobId或者protoPayload.resourceName(格式类似projects/[项目ID]/jobs/[Job ID])中提取。 - 注意:如果存储过程内部有非致命的警告(比如数据类型转换警告、分区键自动调整等),
error字段仍为空,但可以通过protoPayload.serviceData.jobCompletedEvent.job.jobStatus.statistics.query.warnings查看这些警告信息,根据业务需求决定是否需要处理。
内容的提问来源于stack exchange,提问作者loki
相关产品推荐
相关产品推荐

