BigQuery:表名缺少数据集,而请求中未设置默认数据集

Pri*_*nce 9 google-bigquery

这是 BigQuery 查询的问题。我知道此查询缺少数据集名称,因此错误“表名称“my_table”缺少数据集而请求中未设置默认数据集。”

select * from my_table;

将 'my_tabale' 更改为 'my_dataset.my_table' 将解决该问题。但是有人可以帮我设置默认数据集吗?错误消息清楚地表明 BigQuery 有这样的选项。

bit*_*ian 2

根据您使用的 API,您可以defaultDataset在运行 BigQuery 作业时指定参数。有关 API 的更多信息,jobs.query请访问https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query

例如,使用createQueryJob https://googleapis.dev/nodejs/bigquery/latest/BigQuery.html#createQueryJob的 NodeJS API ,您可以执行类似以下操作:

const options = {
  keyFilename: process.env.GOOGLE_APPLICATION_CREDENTIALS,
  projectId: process.env.GOOGLE_APPLICATION_PROJECT_ID,
  defaultDataset: {
    datasetId: process.env.BIGQUERY_DATASET_ID,
    projectId: process.env.GOOGLE_APPLICATION_PROJECT_ID
  },
  query: `select * from my_table;`
}

const [job] = await bigquery.createQueryJob(options);
let [rows] = await job.getQueryResults();

Run Code Online (Sandbox Code Playgroud)

  • 感谢@bitnahian 的回答。我只是使用 BigQuery 控制台来运行此查询。它不与任何其他特定的 BQ api 一起使用。我有多个数据集,正在寻找将当前数据集设置为默认数据集的选项。 (3认同)