我在谷歌应用程序脚本中使用bigquery API,类似于:
try {
var queryRequest = BigQuery.newQueryRequest();
queryRequest.setQuery(sql).setTimeoutMs(100000);
queryResults = BigQuery.Jobs.query(queryRequest, projectNumber);
// Browser.msgBox(queryRequest);
}
catch (err) {
Logger.log(err);
Browser.msgBox(err);
return;
}
// Check on status of the Query Job : MONTHLY
while (queryResults.getJobComplete() == false) {
try {
queryResults = BigQuery.Jobs.getQueryResults(projectNumber, queryResults.jobId);
//queryResults = BigQuery.Jobs.getQueryResults(projectNumber, job.id);
}
catch (err) {
Logger.log(err);
Browser.msgBox(err);
return;
}
}
它给了我:
Exception: Query exceeded resource limits for tier 1. Tier 3 or higher required.
我在cloud.bigquery中看到了类似的错误,当在bigquery控制台中编写查询时,我可以通过将计费层选择为无限制来删除它,但我不知道如何通过API(自动方式)来完成。有什么办法可以实现吗?
作业:getQueryResults API仅检索查询作业的结果
计费层的"问题"以前发生过–当您通过Jobs调用查询作业时:插入API
因此,应使用configuration.query.maximumBillingTier属性
您可以尝试在开发人员控制台中申请更高的配额。您可以转到Google API->BigQuery API->配额,然后选择申请更高的配额价详细信息和大配额政策,该政策为您提供传入请求的最大Bigquery限制率,并在每个项目的基础上强制执行适当的配额。