使用Cloud SQL联邦查询训练BigQueryML模型报错问题咨询
结论
BigQuery ML 原生支持在模型训练、预测语句中直接通过 EXTERNAL_QUERY 使用Cloud SQL联邦查询数据源,不需要提前将数据导入BigQuery原生表。你遇到的报错属于权限配置问题,不是功能限制。
报错根因
手动单独执行联邦查询SELECT语句时,权限校验走的是你当前登录的个人账号身份;但BigQuery ML执行模型训练任务属于后台作业,会使用BigQuery内置的服务代理账号访问联邦连接资源。你当前的配置仅给个人账号开通了联邦连接使用权限,没有给对应服务账号授权,因此触发“找不到外部数据库凭证”的报错。
修复步骤
- 找到当前项目对应的BigQuery ML服务代理账号,账号格式为
service-<你的项目数字ID>@gcp-sa-bigquery-condel.iam.gserviceaccount.com - 给上述服务账号授予目标联邦连接的
BigQuery Connection User角色,授权范围精确到你使用的projects/***/locations/europe-west1/connections/conn连接资源 - 二次确认联邦连接内配置的Cloud SQL数据库账号凭证有效,且该账号对
articles表持有读权限 - 权限配置完成后等待1-2分钟全局生效,重新执行模型创建语句即可
若权限配置后仍报错,可额外检查执行CREATE MODEL操作的个人账号,是否同时持有BigQuery模型创建权限、联邦连接的使用权限,排除多重权限缺失问题。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

