{"id":9121,"date":"2026-09-21T13:04:02","date_gmt":"2026-09-21T13:04:02","guid":{"rendered":"https:\/\/prwatech.in\/blog\/?p=9121"},"modified":"2026-09-22T15:21:43","modified_gmt":"2026-09-22T15:21:43","slug":"working-with-dataflow-using-bigquery","status":"publish","type":"post","link":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/","title":{"rendered":"Working With Dataflow using BigQuery"},"content":{"rendered":"\r\n<h1>Building a Dataflow Pipeline From a BigQuery Source<\/h1>\r\n<p>This runs a Dataflow pipeline that reads a table already sitting in BigQuery, processes it with a Python script using Apache Beam, and writes the result into a Cloud Storage bucket. It is a useful third variation alongside the other two Dataflow guides in this series, ETL Processing With Dataflow and BigQuery reads from a file and writes into BigQuery, and Pub\/Sub Stream Processing With Dataflow reads a continuous stream of messages, while this one starts from data that is already a BigQuery table.<\/p>\r\n<p>This walks through querying the source table directly in BigQuery first, then running the same underlying data through a Dataflow pipeline that finds Java projects with a high ratio of comments suggesting they need help, such as TODO or FIXME notes.<\/p>\r\n<h2>Step by Step Process of Building a Dataflow Pipeline from a BigQuery Source<\/h2>\r\n<h3>Step One: Open BigQuery<\/h3>\r\n<p>Open the console, then the menu, then BigQuery.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"274\" class=\"wp-image-9122\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Two: Run a Sample Query<\/h3>\r\n<p>SELECT<br \/>\u00a0\u00a0content<br \/>FROM<br \/>\u00a0\u00a0fh-bigquery.github_extracts.contents_java_2016<br \/>LIMIT<br \/>\u00a0\u00a010<\/p>\r\n<p>Click Run.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"378\" class=\"wp-image-9123\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-452.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-452.png 411w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-452-300x276.png 300w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>It will display the results.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"561\" class=\"wp-image-9124\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-453.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-453.png 458w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-453-245x300.png 245w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Three: Run a Count Query<\/h3>\r\n<p>SELECT<br \/>\u00a0\u00a0COUNT(*)<br \/>FROM<br \/>\u00a0\u00a0fh-bigquery.github_extracts.contents_java_2016<\/p>\r\n<p>Click Run.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"375\" height=\"237\" class=\"wp-image-9125\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-454.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-454.png 375w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-454-300x190.png 300w\" sizes=\"auto, (max-width: 375px) 100vw, 375px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>This gives you the total number of rows in the table.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"340\" height=\"184\" class=\"wp-image-9126\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-455.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-455.png 340w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-455-300x162.png 300w\" sizes=\"auto, (max-width: 340px) 100vw, 340px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Four: Clone the Training Repository<\/h3>\r\n<p>Activate Cloud Shell, then run:<\/p>\r\n<p>git clone https:\/\/github.com\/GoogleCloudPlatform\/training-data-analyst<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9127\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-456.png\" alt=\"\" width=\"859\" height=\"150\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-456.png 711w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-456-300x53.png 300w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Five: List the Contents<\/h3>\r\n<p>ls<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9129\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/2-1024x46.jpg\" alt=\"\" width=\"1048\" height=\"46\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/2-1024x46.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/2-300x13.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/2-768x34.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/2-1200x54.jpg 1200w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/2.jpg 1344w\" sizes=\"auto, (max-width: 1048px) 100vw, 1048px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Six: Set a Bucket Variable<\/h3>\r\n<p>Create a bucket in the console first, using the same name as your project ID, then set it as a variable in Cloud Shell:<\/p>\r\n<p>BUCKET=&#8221;your-bucket-name&#8221;<br \/>echo $BUCKET<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9130\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-458.png\" alt=\"\" width=\"738\" height=\"83\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-458.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-458-300x34.png 300w\" sizes=\"auto, (max-width: 738px) 100vw, 738px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Seven: Move Into the Lab Directory<\/h3>\r\n<p>cd training-data-analyst\/courses\/data_analysis\/lab2\/python<br \/>ls<\/p>\r\n<p>The lab files will be displayed.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9131\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/9-1024x72.jpg\" alt=\"\" width=\"1061\" height=\"75\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/9-1024x72.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/9-300x21.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/9-768x54.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/9.jpg 1201w\" sizes=\"auto, (max-width: 1061px) 100vw, 1061px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Eight: Open the Script<\/h3>\r\n<p>nano JavaProjectsThatNeedHelp.py<\/p>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9132\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/6-1024x74.jpg\" alt=\"\" width=\"1008\" height=\"73\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/6-1024x74.jpg 1024w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/6-300x22.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/6-768x56.jpg 768w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/6.jpg 1158w\" sizes=\"auto, (max-width: 1008px) 100vw, 1008px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>This is a good point to actually read through the script before running it, so you know what it is doing to the data rather than just running it blind.<\/p>\r\n<p>Exit with control x.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"579\" class=\"wp-image-9133\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-459.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-459.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-459-300x277.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Nine: Run the Pipeline<\/h3>\r\n<p>python3 JavaProjectsThatNeedHelp.py &#8211;bucket $BUCKET &#8211;project $DEVSHELL_PROJECT_ID &#8211;DataFlowRunner<\/p>\r\n<p>This specific lab script expects that exact set of arguments, bucket and project as regular flags, with DataFlowRunner as a separate flag that switches it from running locally to running on Dataflow. If your copy of the script has been updated since this was written, check its own argument parser for the current flag names before assuming the command is wrong.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9134\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/7.jpg\" alt=\"\" width=\"716\" height=\"241\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/7.jpg 814w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/7-300x101.jpg 300w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/7-768x259.jpg 768w\" sizes=\"auto, (max-width: 716px) 100vw, 716px\" \/><\/figure>\r\n<h3>Step Ten: Watch the Job Run<\/h3>\r\n\r\n\r\n\r\n<p>Go to DataFlow &gt; Jobs The jobs will be running<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"389\" height=\"178\" class=\"wp-image-9135\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-460.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-460.png 389w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-460-300x137.png 300w\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Open the running job<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"178\" class=\"wp-image-9136\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-461.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-461.png 628w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-461-300x85.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Watch its progress.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"846\" class=\"wp-image-9137\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-462.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-462.png 547w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-462-194x300.png 194w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Eleven: Confirm Success<\/h3>\r\n<p>Once finished, the job shows a Succeeded status.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"535\" height=\"824\" class=\"wp-image-9138\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-463.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-463.png 535w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-463-195x300.png 195w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3>Step Twelve: Check the Output<\/h3>\r\n<p>Open the menu, then Cloud Storage, then your bucket.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"59\" class=\"wp-image-9139\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-464.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-464.png 350w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-464-300x51.png 300w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Open the javahelp folder.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"645\" height=\"434\" class=\"wp-image-9140\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-465.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-465.png 645w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-465-300x202.png 300w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>The pipeline&#8217;s output is stored there.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"484\" height=\"323\" class=\"wp-image-9141\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-466.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-466.png 484w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-466-300x200.png 300w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/figure>\r\n<h2>How This Fits With the Other Dataflow Guides<\/h2>\r\n<p>Across this series, the three Dataflow examples cover the three common shapes a pipeline&#8217;s source and destination can take. ETL Processing With Dataflow and BigQuery reads a file and writes into BigQuery. Pub\/Sub Stream Processing With Dataflow reads a continuous stream and writes to Cloud Storage. This one reads a table already inside BigQuery and writes back out to Cloud Storage, showing that Dataflow treats BigQuery as just another data source, not only a destination.<\/p>\r\n<h2>Common Mistakes to Avoid<\/h2>\r\n<ul>\r\n<li>Copying the pipeline command with en dash characters instead of real double hyphens. Retype the flags if the command fails immediately.<\/li>\r\n<li>Naming the bucket something other than your project ID after being told to match them. Later commands and the script itself assume that naming, and a mismatch will cause confusing failures.<\/li>\r\n<li>Running the script without reading it first. It is short enough to read through in a minute, and understanding what it actually filters for makes the Dataflow job&#8217;s output far more meaningful.<\/li>\r\n<li>Assuming a community hosted dataset like this one will always be available. Run the sample query first to confirm it still resolves before building anything on top of it.<\/li>\r\n<\/ul>\r\n<p>That covers running a Dataflow pipeline against a BigQuery source table and writing its output to Cloud Storage. To go further, explore <a href=\"https:\/\/prwatech.in\/gcp-training-institutes-in-pune\/\"><strong><b>Prwatech&#8217;s Google Cloud training<\/b><\/strong>\u00a0program<\/a>, which includes placement assistance.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Building a Dataflow Pipeline From a BigQuery Source This runs a Dataflow pipeline that reads a table already sitting in BigQuery, processes it with a Python script using Apache Beam, and writes the result into a Cloud Storage bucket. It is a useful third variation alongside the other two Dataflow guides in this series, ETL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1636,1],"tags":[1403,736,1426,1427,605,699,700,735,617,683,684,685,611,1400,692],"class_list":["post-9121","post","type-post","status-publish","format-standard","hentry","category-dataflow","category-google-cloud-platform","tag-bigquery-documentation","tag-bigquery-in-cloud","tag-dataflow","tag-dataflow-gcp","tag-gcp","tag-gcp-certification","tag-gcp-cloud-console","tag-google-bigquery","tag-google-cloud","tag-google-cloud-certification","tag-google-cloud-console","tag-google-cloud-courses","tag-google-cloud-platform","tag-google-cloud-platform-tutorial","tag-google-cloud-training"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building a Dataflow Pipeline From a BigQuery Source - Prwatech<\/title>\n<meta name=\"description\" content=\"Query BigQuery, then process the same GitHub data through a Dataflow pipeline and write the result to Cloud Storage, commands corrected. Step by step process\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a Dataflow Pipeline From a BigQuery Source - Prwatech\" \/>\n<meta property=\"og:description\" content=\"Query BigQuery, then process the same GitHub data through a Dataflow pipeline and write the result to Cloud Storage, commands corrected. Step by step process\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/\" \/>\n<meta property=\"og:site_name\" content=\"Prwatech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prwatech.in\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-21T13:04:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-22T15:21:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png\" \/>\n\t<meta property=\"og:image:width\" content=\"292\" \/>\n\t<meta property=\"og:image:height\" content=\"274\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Prwatech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:site\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prwatech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/\",\"url\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/\",\"name\":\"Building a Dataflow Pipeline From a BigQuery Source - Prwatech\",\"isPartOf\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png\",\"datePublished\":\"2026-09-21T13:04:02+00:00\",\"dateModified\":\"2026-09-22T15:21:43+00:00\",\"author\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\"},\"description\":\"Query BigQuery, then process the same GitHub data through a Dataflow pipeline and write the result to Cloud Storage, commands corrected. Step by step process\",\"breadcrumb\":{\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#primaryimage\",\"url\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png\",\"contentUrl\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png\",\"width\":292,\"height\":274},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prwatech.in\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working With Dataflow using BigQuery\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prwatech.in\/blog\/#website\",\"url\":\"https:\/\/prwatech.in\/blog\/\",\"name\":\"Prwatech\",\"description\":\"Share Ideas, Start Something Good.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prwatech.in\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\",\"name\":\"Prwatech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"caption\":\"Prwatech\"},\"url\":\"https:\/\/prwatech.in\/blog\/author\/prwatech123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building a Dataflow Pipeline From a BigQuery Source - Prwatech","description":"Query BigQuery, then process the same GitHub data through a Dataflow pipeline and write the result to Cloud Storage, commands corrected. Step by step process","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/","og_locale":"en_US","og_type":"article","og_title":"Building a Dataflow Pipeline From a BigQuery Source - Prwatech","og_description":"Query BigQuery, then process the same GitHub data through a Dataflow pipeline and write the result to Cloud Storage, commands corrected. Step by step process","og_url":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/","og_site_name":"Prwatech","article_publisher":"https:\/\/www.facebook.com\/prwatech.in\/","article_published_time":"2026-09-21T13:04:02+00:00","article_modified_time":"2026-09-22T15:21:43+00:00","og_image":[{"width":292,"height":274,"url":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png","type":"image\/png"}],"author":"Prwatech","twitter_card":"summary_large_image","twitter_creator":"@Eduprwatech","twitter_site":"@Eduprwatech","twitter_misc":{"Written by":"Prwatech","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/","url":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/","name":"Building a Dataflow Pipeline From a BigQuery Source - Prwatech","isPartOf":{"@id":"https:\/\/prwatech.in\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#primaryimage"},"image":{"@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#primaryimage"},"thumbnailUrl":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png","datePublished":"2026-09-21T13:04:02+00:00","dateModified":"2026-09-22T15:21:43+00:00","author":{"@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3"},"description":"Query BigQuery, then process the same GitHub data through a Dataflow pipeline and write the result to Cloud Storage, commands corrected. Step by step process","breadcrumb":{"@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#primaryimage","url":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png","contentUrl":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-451.png","width":292,"height":274},{"@type":"BreadcrumbList","@id":"https:\/\/prwatech.in\/blog\/google-cloud-platform\/dataflow\/working-with-dataflow-using-bigquery\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prwatech.in\/blog\/"},{"@type":"ListItem","position":2,"name":"Working With Dataflow using BigQuery"}]},{"@type":"WebSite","@id":"https:\/\/prwatech.in\/blog\/#website","url":"https:\/\/prwatech.in\/blog\/","name":"Prwatech","description":"Share Ideas, Start Something Good.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prwatech.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3","name":"Prwatech","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","caption":"Prwatech"},"url":"https:\/\/prwatech.in\/blog\/author\/prwatech123\/"}]}},"_links":{"self":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/comments?post=9121"}],"version-history":[{"count":6,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9121\/revisions"}],"predecessor-version":[{"id":11837,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9121\/revisions\/11837"}],"wp:attachment":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/media?parent=9121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/categories?post=9121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/tags?post=9121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}