/** Example of running a query and saving the results to a table. */ public void runQueryLargeResults(String destinationDataset, String destinationTable) throws InterruptedException { // [START bigquery_query_legacy_large_results] // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); // String destinationDataset = 'my_destination_dataset'; // String destinationTable = 'my_destination_table'; String query = "SELECT corpus FROM [bigquery-public-data:samples.shakespeare] GROUP BY corpus;"; QueryJobConfiguration queryConfig = // To use legacy SQL syntax, set useLegacySql to true. QueryJobConfiguration.newBuilder(query) .setUseLegacySql(true) // Save the results of the query to a permanent table. .setDestinationTable(TableId.of(destinationDataset, destinationTable)) // Allow results larger than the maximum response size. // If true, a destination table must be set. .setAllowLargeResults(true) .build(); // Print the results. for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { for (FieldValue val : row) { System.out.printf("%s,", val.toString()); } System.out.printf("\n"); } // [END bigquery_query_legacy_large_results] }
QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query) .setAllowLargeResults(true) .setDestinationTable(destinationTable) .build();
private QueryResponse queryWithLarge(BigQuery bigquery, QueryRequest queryRequest, String projectId) { String tempDataset = genTempName("dataset"); String tempTable = genTempName("table"); bigquery.create(DatasetInfo.of(tempDataset)); TableId tableId = TableId.of(projectId, tempDataset, tempTable); QueryJobConfiguration jobConfiguration = QueryJobConfiguration .newBuilder(queryRequest.getQuery()) .setAllowLargeResults(true) .setUseLegacySql(queryRequest.useLegacySql()) .setDestinationTable(tableId) .build(); Job job = bigquery.create(JobInfo.of(jobConfiguration)); QueryResponse queryResponse = bigquery.getQueryResults(job.getJobId()); queryResponse = loopQueryResponse(bigquery, queryResponse); bigquery.delete(tableId); return queryResponse; }
private QueryResponse queryWithLarge(BigQuery bigquery, QueryRequest queryRequest, String projectId) { String tempDataset = genTempName("dataset"); String tempTable = genTempName("table"); bigquery.create(DatasetInfo.of(tempDataset)); TableId tableId = TableId.of(projectId, tempDataset, tempTable); QueryJobConfiguration jobConfiguration = QueryJobConfiguration .newBuilder(queryRequest.getQuery()) .setAllowLargeResults(true) .setUseLegacySql(queryRequest.useLegacySql()) .setDestinationTable(tableId) .build(); Job job = bigquery.create(JobInfo.of(jobConfiguration)); QueryResponse queryResponse = bigquery.getQueryResults(job.getJobId()); queryResponse = loopQueryResponse(bigquery, queryResponse); bigquery.delete(tableId); return queryResponse; }