Paginate a BigQuery result set
Stay organized with collections
Save and categorize content based on your preferences.
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
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Paginate a BigQuery result set\n\nUses a page token to paginate a BigQuery result set and loop through a page of results at a time.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Paginate a BigQuery result set](/workflows/docs/paginate-bigquery-results)\n\nCode sample\n-----------\n\n### YAML\n\n # Use a page token to loop through a page of results at a time when\n # querying a BigQuery dataset larger than the Workflows memory limit\n # This workflow queries a public dataset to determine the most common\n # names in the US between 1910 and 2013\n main:\n params: [input]\n steps:\n - init:\n assign:\n - pageToken: null\n - startQuery:\n call: googleapis.bigquery.v2.jobs.insert\n args:\n projectId: ${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}\n body:\n configuration:\n query:\n useLegacySql: false\n # Remove LIMIT from the query to iterate through all results\n 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\n result: query\n - getPage:\n call: googleapis.bigquery.v2.jobs.getQueryResults\n args:\n projectId: ${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}\n jobId: ${query.jobReference.jobId}\n maxResults: 10\n pageToken: ${pageToken}\n result: page\n - processPage:\n for:\n value: row\n in: ${page.rows}\n steps:\n - processRow:\n call: sys.log\n args:\n data: ${row}\n - checkIfDone:\n switch:\n - condition: ${\"pageToken\" in page and page.pageToken != \"\"}\n assign:\n - pageToken: ${page.pageToken}\n next: getPage\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=workflows)."]]