我们遇到的问题是,在配置标准SQL时,发出一个BigTable外部表的查询,并且出现 dry_run = True
错误 .
这是预期的吗?使用旧版SQL时,或 dry_run
设置为false时没有问题 .
from google.oauth2.service_account import Credentials
from google.cloud.bigquery.client import Client
from google.cloud.bigquery.job import QueryJobConfig
creds = Credentials.from_service_account_file('secrets.json')
client = Client(project='project-id', credentials=creds)
query = 'select col from table limit 1'
job_config = QueryJobConfig()
job_config.dry_run = True
job_config.use_legacy_sql = False
client.query(query, job_config=job_config)
错误:
BadRequest:400 POST https://www.googleapis.com/bigquery/v2/projects/project-id/jobs:阅读表时出错:表,错误消息:访问Cloud Bigtable时出错:API密钥和身份验证凭据是来自不同的项目 .
此代码返回 google.cloud.bigquery.job.QueryJob
,没有错误:
job_config = QueryJobConfig()
job_config.dry_run = True
job_config.use_legacy_sql = True
client.query(query, job_config=job_config)
直接访问其余 endpoints 时会出现同样的问题 .
1 回答
通过GCP支持证实这是一个内部错误 - 估计修复将在“一两个月内”推出 .