Google bigquery BigQuery Java流式读取?

Google bigquery BigQuery Java流式读取?,google-bigquery,Google Bigquery,我想看看我是否只是使用了错误的模式来读取大查询 我想对读取请求进行流式处理,这样就不会在内存中加载所有数据 这就是我现在正在做的 String columnsRequested=Joiner.on(“,”).join(列); String query=String.format(“从“%s”中选择%s,UNNEST(hits)作为hits”,columnsRequested,getSource(realTableName,dataSetId)); QueryJobConfiguration q

我想看看我是否只是使用了错误的模式来读取大查询

我想对读取请求进行流式处理,这样就不会在内存中加载所有数据

这就是我现在正在做的


String columnsRequested=Joiner.on(“,”).join(列);
String query=String.format(“从“%s”中选择%s,UNNEST(hits)作为hits”,columnsRequested,getSource(realTableName,dataSetId));
QueryJobConfiguration queryConfig=QueryJobConfiguration
.newBuilder(查询)
.setUseLegacySql(false)
.build();
//完成作业配置后,只需执行:
QueryJobConfiguration queryConfig=constructQuery(dataSetId、tableName、columns);
TableResult res=bigquery.query(queryConfig);
返回res;
然后在不同的代码路径中读取结果

  for (FieldValueList row : result.iterateAll()) {

    // read data, manipulate and write each line to a CSV file.
  }

每个结果都是我们正在读取的大约一兆的数据,我的内存占用大约就是这个大小。CSV编写器没有在mem中保留任何内容,因此我倾向于使用BigTable java lib是错误的

有没有更好的方法来查询结果以流方式传输而不是加载到内存中的数据


注意:我特别询问读取操作。我确实找到了参考资料,但对我的情况没有帮助。

你是说BigQuery,而不是Bigtable吗?很抱歉,是的,BigQuery!你是说BigQuery,不是Bigtable?很抱歉是的,BigQuery!