首页 文章

对于标准SQL,使用空运行查询BigTable失败

提问于
浏览
0

我们遇到的问题是,在配置标准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 回答

  • 1

    通过GCP支持证实这是一个内部错误 - 估计修复将在“一两个月内”推出 .

相关问题