我在谷歌应用程序脚本中使用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(自动化方式) )。我们有什么方法可以实现它。
答案 0 :(得分:1)
Jobs: getQueryResults API只检索查询作业的结果 "问题"计费层发生之前 - 当您通过Jobs: insert API呼叫查询作业时 因此,应使用configuration.query.maximumBillingTier属性
在此处应用控制最大结算层答案 1 :(得分:0)
您可以尝试在Developer Console申请更高的配额。 您可以转到 Google API - > BigQuery API - > 配额然后选择申请更高的配额。您还可以在此处查看Pricing details和Big Quota Policy,它为您提供传入请求的最大Bigquery限制率,并在每个项目的基础上强制执行适当的配额。