Paginate a BigQuery result set

Uses a page token to paginate a BigQuery result set and loop through a page of results at a time.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

YAML

  # Use a page token to loop through a page of results at a time when 
 # querying a BigQuery dataset larger than the Workflows memory limit 
 # This workflow queries a public dataset to determine the most common 
 # names in the US between 1910 and 2013 
 main 
 : 
  
 params 
 : 
  
 [ 
 input 
 ] 
  
 steps 
 : 
  
 - 
  
 init 
 : 
  
 assign 
 : 
  
 - 
  
 pageToken 
 : 
  
 null 
  
 - 
  
 startQuery 
 : 
  
 call 
 : 
  
 googleapis.bigquery.v2.jobs.insert 
  
 args 
 : 
  
 projectId 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} 
  
 body 
 : 
  
 configuration 
 : 
  
 query 
 : 
  
 useLegacySql 
 : 
  
 false 
  
 # Remove LIMIT from the query to iterate through all results 
  
 query 
 : 
  
 SELECT name, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name ORDER BY total DESC LIMIT 50 
  
 result 
 : 
  
 query 
  
 - 
  
 getPage 
 : 
  
 call 
 : 
  
 googleapis.bigquery.v2.jobs.getQueryResults 
  
 args 
 : 
  
 projectId 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} 
  
 jobId 
 : 
  
 ${query.jobReference.jobId} 
  
 maxResults 
 : 
  
 10 
  
 pageToken 
 : 
  
 ${pageToken} 
  
 result 
 : 
  
 page 
  
 - 
  
 processPage 
 : 
  
 for 
 : 
  
 value 
 : 
  
 row 
  
 in 
 : 
  
 ${page.rows} 
  
 steps 
 : 
  
 - 
  
 processRow 
 : 
  
 call 
 : 
  
 sys.log 
  
 args 
 : 
  
 data 
 : 
  
 ${row} 
  
 - 
  
 checkIfDone 
 : 
  
 switch 
 : 
  
 - 
  
 condition 
 : 
  
 ${"pageToken" in page and page.pageToken != ""} 
  
 assign 
 : 
  
 - 
  
 pageToken 
 : 
  
 ${page.pageToken} 
  
 next 
 : 
  
 getPage 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: