【问题标题】:How to select large result set from Google BigQuery using .net api client library without pagination如何使用 .net api 客户端库从 Google BigQuery 中选择大型结果集而不进行分页
【发布时间】:2015-06-25 10:49:36
【问题描述】:
我正在尝试使用 .net 客户端库从 Google BigQuery 中选择大型结果集(~200K)。
我一次只能获得约 4K 行(请求和响应),Google BigQuery 提供 PageToken 以获得下一组结果。我能够通过对 Google Bigquery 的多个请求(约 50 个请求和响应)从大查询中选择所有行。
我的问题:是否有可能在单一响应中选择大型结果集?如果是,请分享您的代码(即使是 JAVA 代码也可以)。
【问题讨论】:
标签:
google-bigquery
google-api-dotnet-client
【解决方案1】:
无法一次运行查询并选择大型响应。您可以对结果进行分页,或者如果您可以创建要导出到文件的作业,然后使用在您的应用中生成的文件。导出是免费的。
运行大型查询并将结果导出到存储在 GCS 上的文件的步骤:
1) 在您的作业配置中将 allowLargeResults 设置为 true。您还必须使用 allowLargeResults 标志指定目标表。
例子:
"configuration":
{
"query":
{
"allowLargeResults": true,
"query": "select uid from [project:dataset.table]"
"destinationTable": [project:dataset.table]
}
}
2) 现在您的数据位于您设置的目标表中。您需要创建一个新作业,并将export property 设置为能够将export the table 设置为文件。导出是免费的,但您需要激活 Google Cloud Storage 才能将生成的文件放在那里。
3) 最后,您从 GCS 下载大文件。