如何使用 .net api 客户端库从 Google BigQuery select 大型结果集,无需分页

How to select large result set from Google BigQuery using .net api client library without pagination

我正在尝试使用 .net 客户端库 select 来自 Google BigQuery 的大型结果集 (~200K)。

我一次只能获得约 4K 行(请求和响应),Google BigQuery 提供 PageToken 来获取下一组结果。我能够通过多个请求 select 来自大查询的所有行到 Google Bigquery(~50 请求和响应)。

我的问题:是否有可能 select 单个响应中的大型结果集?如果是,请分享您的代码(甚至 JAVA 代码也可以)。

无法同时 运行 查询和 select 大响应。您可以对结果进行分页,或者如果您可以创建一个导出到文件的作业,则使用在您的应用程序中生成的文件。导出是免费的。

步骤 运行 大型查询并将结果导出到存储在 GCS 上的文件:

1) 在作业配置中将 allowLargeResults 设置为 true。您还必须使用 allowLargeResults 标志指定目的地 table。

示例:

"configuration": 
  {
    "query": 
    {
      "allowLargeResults": true,
      "query": "select uid from [project:dataset.table]"
      "destinationTable": [project:dataset.table]

    }
  }

2) 现在您的数据位于您设置的目的地 table 中。您需要创建一个新作业,并将 export property to be able to export the table 设置为文件。导出是免费的,但您需要 Google 激活云存储才能将生成的文件放在那里。

3) 最后从 GCS 下载大文件。