错误:在作业configuration中将allowLargeResults设置为true后仍然出现错误?

我在我的代码中写了bigquery。 我想获取更大的结果。

我也设置propertie allowLargeResult:true ,但是我仍然得到错误: 响应太大,不能返回。 考虑在作业configuration中将allowLargeResults设置为true。 有关更多信息,请参阅http://cloud.google.com/bigquery/troubleshooting-errors

这是我的Node.js代码:

var google = require('googleapis'); var bigquery = google.bigquery('v2'); var authClient = new google.auth.JWT( 'arjun-dev@mybank-bigquery.iam.gserviceaccount.com', 'keyA.pem', null, ['https://www.googleapis.com/auth/bigquery']); var request2 = { projectId: 'project-bank', jobId:'job_LHMRhoUfM038QA4jPZHaOESI3Uo', startIndex: 0, maxResults: 100000, timeoutMs: 10000, configuration:{ allowLargeResults: true }, auth: authClient }; var list1 = bigquery.jobs.getQueryResults(request2, function(err, result) { if (err) { console.log("### 2 " + err); } else { console.log(result); res.send(result); } }); 

请帮忙 !

如果设置allowLargeResults true,那么结果可能太大而无法返回,并且缺less目标表,因为无法返回大的结果,而需要写入目标表。 如果以后要获取数据,则需要将表格导出到GCS,然后从GCS下载。

返回大的查询结果

通常,查询的最大响应大小为128 MB压缩。 如果您计划运行可能会返回更大结果的查询,则可以在作业configuration中将allowLargeResults设置为true。

即使结果集较小,返回较大结果的查询也需要较长的时间才能执行,并受到其他限制:

  • 您必须指定一个目标表。
  • 您不能指定顶级的ORDER BY,TOP或LIMIT子句。 这样做会否定使用allowLargeResults的好处,因为不能再同时计算查询输出。
  • 仅当与PARTITION BY子句结合使用时,窗口函数才能返回较大的查询结果。