diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java index eff8f48061ad..ceffb21e2b55 100644 --- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java +++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java @@ -21,6 +21,7 @@ import com.google.cloud.bigquery.FieldValueList; import com.google.cloud.bigquery.FormatOptions; import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.LoadJobConfiguration; import com.google.cloud.bigquery.QueryJobConfiguration; @@ -177,18 +178,26 @@ public void runBatchQuery() throws TimeoutException, InterruptedException { QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query) // Run at batch priority, which won't count toward concurrent rate - // limit. See: - // https://cloud.google.com/bigquery/docs/running-queries#batch + // limit. .setPriority(QueryJobConfiguration.Priority.BATCH) .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"); - } + // Location must match that of the dataset(s) referenced in the query. + JobId jobId = JobId.newBuilder().setRandomJob().setLocation("US").build(); + String jobIdString = jobId.getJob(); + + // API request - starts the query. + bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build()); + + // Check on the progress by getting the job's updated state. Once the state + // is `DONE`, the results are ready. + Job queryJob = bigquery.getJob( + JobId.newBuilder().setJob(jobIdString).setLocation("US").build()); + System.out.printf( + "Job %s in location %s currently in state: %s%n", + queryJob.getJobId().getJob(), + queryJob.getJobId().getLocation(), + queryJob.getStatus().getState().toString()); // [END bigquery_query_batch] } diff --git a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITCloudSnippets.java b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITCloudSnippets.java index 69b9046f380b..549ca09d925b 100644 --- a/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITCloudSnippets.java +++ b/google-cloud-examples/src/test/java/com/google/cloud/examples/bigquery/snippets/ITCloudSnippets.java @@ -96,7 +96,7 @@ public void testRunUncachedQuery() throws TimeoutException, InterruptedException public void testRunBatchQuery() throws TimeoutException, InterruptedException { cloudSnippets.runBatchQuery(); String got = bout.toString(); - assertTrue(got.contains("romeoandjuliet")); + assertTrue(got.contains("in location US currently in state:")); } @Test