Created
July 22, 2019 16:41
-
-
Save gxercavins/92e696d53f5f3aa9b4a2ccdaaed2a8a3 to your computer and use it in GitHub Desktop.
SO question 57141083
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.google.cloud.bigquery.BigQuery; | |
import com.google.cloud.bigquery.BigQueryOptions; | |
import com.google.cloud.bigquery.FieldValueList; | |
import com.google.cloud.bigquery.Job; | |
import com.google.cloud.bigquery.JobId; | |
import com.google.cloud.bigquery.JobInfo; | |
import com.google.cloud.bigquery.JobStatistics; | |
import com.google.cloud.bigquery.JobStatistics.QueryStatistics; | |
import com.google.cloud.bigquery.QueryJobConfiguration; | |
import com.google.cloud.bigquery.QueryResponse; | |
import com.google.cloud.bigquery.TableResult; | |
import java.util.UUID; | |
public class CacheHit { | |
public static void main(String... args) throws Exception { | |
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); | |
QueryJobConfiguration queryConfig = | |
QueryJobConfiguration.newBuilder( | |
"SELECT " | |
+ "CONCAT('https://stackoverflow.com/questions/', CAST(id as STRING)) as url, " | |
+ "view_count " | |
+ "FROM `bigquery-public-data.stackoverflow.posts_questions` " | |
+ "WHERE tags like '%google-bigquery%' " | |
+ "ORDER BY favorite_count DESC LIMIT 10") | |
// Use standard SQL syntax for queries. | |
// See: https://cloud.google.com/bigquery/sql-reference/ | |
.setUseLegacySql(false) | |
.build(); | |
// Create a job ID so that we can safely retry. | |
JobId jobId = JobId.of(UUID.randomUUID().toString()); | |
Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build()); | |
// Wait for the query to complete. | |
queryJob = queryJob.waitFor(); | |
// Check for errors | |
if (queryJob == null) { | |
throw new RuntimeException("Job no longer exists"); | |
} else if (queryJob.getStatus().getError() != null) { | |
// You can also look at queryJob.getStatus().getExecutionErrors() for all | |
// errors, not just the latest one. | |
throw new RuntimeException(queryJob.getStatus().getError().toString()); | |
} | |
// Get the results. | |
TableResult result = queryJob.getQueryResults(); | |
// Print all pages of the results. | |
for (FieldValueList row : result.iterateAll()) { | |
String url = row.get("url").getStringValue(); | |
long viewCount = row.get("view_count").getLongValue(); | |
System.out.printf("url: %s views: %d%n", url, viewCount); | |
} | |
QueryStatistics js = queryJob.getStatistics(); | |
System.out.println(js.getCacheHit()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment