You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Beam 2.39.0搭配DataFlow报BigQuery Storage API权限拒绝错误

问题根因

该报错是Apache Beam 2.39.0及以上版本BigQuery IO模块默认逻辑变更触发的,不属于临时服务故障,报错中出现的陌生项目ID和你所属的账号资源无关:

  • Apache Beam 2.38.0及更早版本中,BigQuery读操作默认走「BigQuery导出查询结果到临时GCS路径、再从GCS读取数据」的旧链路,全程不会调用BigQuery Storage API,因此相同代码在该版本下可正常运行。
  • 从2.39.0版本开始,BigQuery读操作默认切换为BigQuery Storage Read API直连链路,读取性能更高,但要求明确指定API调用的配额/计费项目。
  • 报错中提到的项目ID770406736630是Dataflow托管Worker节点所属的Google内部运维项目。如果作业中没有显式指定BigQuery Storage API的调用项目,SDK会默认尝试用Worker所属的内部项目发起API调用,自然会触发该项目未启用对应API的权限拒绝错误。
修复方案

任选以下一种方式调整即可解决问题:

  • 保留新的Storage Read API高性能链路:在构建BigQuery读源时显式指定你自己的GCP项目ID作为API调用项目,同时确认你本人所属的项目已开启BigQuery Storage API服务。Java SDK可通过BigQueryIO.read(...).withProjectId(你的项目ID)配置,Python SDK可在读取配置中传入project=你的项目ID参数。
  • 回退到旧版读取链路:在Dataflow作业启动参数中添加实验项--experiments=use_legacy_bq_read,强制SDK使用2.38版本默认的GCS中转读取逻辑,不会触发BigQuery Storage API调用。
  • 通过SDK配置关闭Storage API默认读取逻辑:Java SDK可在构建BigQuery读转换时显式指定读取方法为导出模式,即配置.withMethod(BigQueryIO.TypedRead.Method.EXPORT);Python SDK可在读取配置中设置method="EXPORT"。

内容的提问来源于stack exchange,提问作者Gabriel Hodoroaga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 01:12:46