New · Cohort 3Engineering Analytics Cohort 3 goes live 25 July — only 30 seatsRegister Now
Interview Questions — GCP Data Engineer

GCP Data Engineer Interview Questions 2026: Service Selection, Pipelines, and Answers That Hold Up

Sixteen scenario-driven questions with interviewer-grade answers covering BigQuery, Dataflow, Pub/Sub, Composer, Dataproc and IAM — the service-selection and pipeline-design depth that GCP data engineer rounds in 2026 actually demand.

By Durgesh Yadav — Senior Data Engineer @ 7-Eleven · Updated 2026-07-25. Preparation guidance, not a hiring guarantee.

What questions are asked in a GCP data engineer interview?

GCP data engineer interviews centre on scenario-based service selection — BigQuery vs Dataproc, Dataflow vs plain load jobs, Pub/Sub ingestion — plus pipeline design covering batch and streaming, late data, idempotency, BigQuery cost control, and IAM basics. Expect strong SQL, some Python for Beam and Airflow, and at least one end-to-end architecture question.

Guide

What To Learn And How To Practice

What GCP Interviewers Actually Test

A GCP data engineer round is a service-selection exam disguised as a conversation. Interviewers hand you a scenario — daily vendor files, a clickstream, a creaking Hadoop cluster — and watch whether you can pick services and defend the pick on cost, latency, and operational burden. Definitions earn nothing; "Dataflow, because the pipeline is streaming with event-time windows and I don't want to manage clusters" earns a lot. The second axis is correctness under failure: what happens on rerun, on duplicate delivery, on late events. Candidates who volunteer idempotency without being prompted stand out immediately. Third is cost literacy — knowing load jobs are free while on-demand queries bill per TB scanned changes designs, and interviewers know it. Fourth is security hygiene: per-pipeline service accounts and dataset-scoped roles, not project Editor. In India, services companies lean hard on migration scenarios, while GCCs and product firms push deeper into streaming design and cost governance.

Scenario-driven service selection with cost and ops justification
Failure thinking: reruns, duplicates, late data, idempotency
Cost literacy: free load jobs, per-TB scans, ephemeral clusters
IAM hygiene: least privilege, per-pipeline service accounts

How to Prepare in Two to Three Weeks

Hands-on beats reading, and one complete pipeline beats ten tutorials. Week one: build a batch pipeline end to end — drop CSVs into Cloud Storage, load them into a date-partitioned BigQuery table, transform with SQL, schedule it. Week two: go streaming — publish synthetic events to Pub/Sub and land them in BigQuery, first with a BigQuery subscription, then through a small Dataflow job so you feel the difference. That contrast is exactly what interviews probe. Use the Professional Data Engineer exam guide as a syllabus map even if you never sit the exam; it enumerates the decision areas interviewers draw from. Then practise out loud: take any pipeline you have built at work or in a project, and rehearse a two-minute walkthrough covering the data volume, the failure you handled, and one thing you would redesign. Finish by whiteboarding the two canonical architectures — batch file ingestion and streaming with reconciliation — until you can draw them from memory.

Build one batch and one streaming pipeline hands-on
Use the PDE exam guide as a free syllabus map
Rehearse a two-minute walkthrough of a real pipeline
Whiteboard the two canonical architectures from memory

Common Mistakes That Sink Candidates

The most common failure is the catalogue answer: listing six services with definitions but no scenario judgement — every seasoned interviewer discounts it instantly. Close behind is defaulting to streaming: proposing Pub/Sub and Dataflow for a nightly report signals you have never paid a Dataflow bill; batch load jobs are free, simpler, and correct for most workloads. Confusing Dataproc and Dataflow — or claiming one is "newer" rather than explaining Spark-estate versus Beam-model reasoning — is a frequent mid-level stumble. Cost blindness shows up as SELECT * answers and unpartitioned table designs. On the correctness side, candidates describe happy paths only; the moment an interviewer asks "what if the job runs twice?" the design collapses because nothing is idempotent. Finally, IAM answers like "give the pipeline Editor access" end security discussions badly. Each of these is avoidable with one honest rehearsal pass where you interrogate your own design the way an interviewer would.

Definitions without scenario judgement
Streaming-by-default for batch-shaped problems
No idempotency story when asked about reruns
Project-level Editor as an IAM answer

A Service-Selection Framework You Can Reuse

Most GCP design questions yield to the same five checks, run in order. One: is the data bounded or unbounded? Files arriving daily are batch; events are streaming — and streaming only if the business genuinely needs sub-hour freshness. Two: how complex is the transformation? Pure SQL means BigQuery ELT and possibly no processing engine at all; code-level parsing, enrichment, or event-time logic means Dataflow. Three: what already exists? A Spark or Hive estate points to Dataproc first, rewrite later. Four: what is the latency requirement, honestly? Push back on invented real-time needs — interviewers respect it. Five: what does the cost model reward? Load jobs over streaming inserts, partition pruning over brute scans, ephemeral clusters over always-on ones. Walk any scenario through those five questions aloud and you will land on a defensible architecture even for scenarios you have never seen — which is precisely what the interviewer is checking for.

Bounded vs unbounded decides batch vs streaming
SQL-only transforms usually mean BigQuery ELT, no engine
Existing Spark assets point to Dataproc first
Interrogate latency claims before designing for them

Question bank

16 interview questions with answers

Real questions from beginner to advanced, each with a concise model answer — practice them, then rehearse live in a mock interview.

EasyWhich GCP services make up a typical data engineering stack, and what is each used for?

A production GCP data stack usually has six pieces. Cloud Storage is the object store — the landing zone for raw files and the data-lake layer. BigQuery is the serverless, columnar warehouse where analytics SQL runs. Dataflow is the managed Apache Beam runner used for both batch and streaming transformations. Pub/Sub is the global messaging service that ingests events and decouples producers from consumers. Dataproc is managed Spark and Hadoop, used mainly when you already have Spark or Hive code. Cloud Composer is managed Apache Airflow and handles orchestration — scheduling, dependencies, retries. A typical flow: events arrive through Pub/Sub or files land in Cloud Storage, Dataflow cleans and enriches them, results land in BigQuery, and Composer coordinates the whole pipeline. In an interview, attach a "when I'd use it" to each service, not just a definition.

EasyWhat are the Cloud Storage classes, and how do you choose between them?

Cloud Storage offers four classes that trade storage price against access cost. Standard has no minimum storage duration or retrieval fee — use it for hot data that pipelines read constantly. Nearline is cheaper per GB but carries a 30-day minimum and a retrieval charge, suiting data touched roughly monthly, like recent backups. Coldline has a 90-day minimum for data accessed maybe quarterly, and Archive has a 365-day minimum for compliance and long-term retention. Two points interviewers like: all four classes serve reads through the same API with low latency — only the economics change, unlike tape-style archive products — and Object Lifecycle Management rules can transition objects automatically, for example raw files moving Standard to Nearline to Archive as partitions age. Picking a colder class for frequently read data actually costs more, because retrieval fees dominate.

EasyWhat is Pub/Sub, and what problem does it solve in a data pipeline?

Pub/Sub is Google Cloud's fully managed, globally available messaging service. Producers publish messages to a topic; each subscription attached to that topic receives its own copy of the stream, so multiple downstream systems can consume independently — that fan-out is a key design feature. It solves the coupling problem: without a buffer, a slow or crashed consumer forces producers to drop data or block. Pub/Sub absorbs traffic spikes, retains unacknowledged messages (seven days by default), and redelivers anything not acknowledged before the ack deadline. Delivery is at-least-once by default, so consumers must handle duplicates idempotently; exactly-once delivery is available on pull subscriptions. A typical data engineering use: application events or CDC streams published to one topic, with one subscription feeding a Dataflow streaming job and another archiving raw events to Cloud Storage.

EasyWhat is a service account, and how does it differ from a user account?

A user account represents a human authenticated through Google sign-in; a service account is an identity for workloads — a Dataflow job, a Composer task, a VM — so pipelines can call GCP APIs without human credentials. You grant IAM roles to a service account exactly as you would to a user, and the workload authenticates as it. Best practices interviewers listen for: create a dedicated service account per pipeline or component rather than sharing one broad identity; grant the narrowest predefined role that works — for example BigQuery Data Editor on one dataset, not project-wide Editor; and avoid downloading long-lived JSON keys — prefer service accounts attached to the compute resource or Workload Identity, so credentials stay short-lived and never sit in a repo. Service accounts are also resources: access to impersonate them must itself be controlled.

EasyWhen would you choose Dataproc over Dataflow?

Both process data at scale, but they target different situations. Dataproc is managed open source — Spark, Hadoop, Hive — where Google provisions clusters but you still think in cluster terms (machine types, autoscaling policies), though the serverless Spark option removes much of that. Choose it when you already have Spark or Hive code, depend on the open-source ecosystem, or are migrating a Hadoop estate and want minimal rewriting. Dataflow is a fully managed runner for Apache Beam: no clusters to size, automatic horizontal scaling, and one programming model for both batch and streaming with strong event-time windowing support. Choose it for new pipelines, especially streaming ones. The honest interview answer: existing Spark assets point to Dataproc; greenfield unified batch-and-streaming points to Dataflow; and pure SQL transformations often need neither — just BigQuery ELT.

MediumDesign a daily batch pipeline: vendor files land in Cloud Storage and must end up clean in BigQuery. Which services and why?

Start with the flow, then justify each hop. Files land in a Cloud Storage bucket partitioned by date. A Cloud Composer DAG scheduled daily — or triggered on file arrival via a sensor — validates that expected files exist and checks basics like row counts and schema. For the load, prefer a BigQuery load job into a date-partitioned staging table: load jobs are free and avoid streaming costs; you only need Dataflow in the middle if transformations are too complex for SQL or files need heavy parsing. Then run ELT: SQL transforms from staging into curated, partitioned, clustered tables. Make every step idempotent — write each day's data with a partition overwrite or a MERGE keyed on business keys, so reruns cannot duplicate rows. Finish with freshness checks and alerting on DAG failure. Interviewers reward the cost note and the idempotency note more than the service names.

MediumHow does Apache Beam on Dataflow unify batch and streaming? Explain windows and watermarks.

Beam's core abstraction is the PCollection, which can be bounded (a fixed dataset — batch) or unbounded (a stream). The same pipeline code — ParDo transforms, GroupByKey, aggregations — runs against either; only the source changes. For unbounded data, Beam separates event time (when the event happened) from processing time (when it arrives), and you group events with windows: fixed, sliding, or session. Since a stream never finishes, the watermark is the runner's estimate of event-time progress — when the watermark passes the end of a window, that window is considered complete and results can be emitted. Triggers control early or repeated emissions, and allowed lateness defines how long to accept stragglers after the watermark, with late results refining earlier ones. Dataflow executes this model with autoscaling and checkpointing. Explaining watermarks correctly is usually the differentiator on this question.

MediumExplain Pub/Sub delivery semantics. How do you deal with duplicate messages?

Default Pub/Sub delivery is at-least-once: if a subscriber fails to acknowledge within the ack deadline — because it crashed, ran slow, or the ack was lost — the message is redelivered. Duplicates are therefore normal, and the baseline defence is idempotent consumers: dedupe on a message ID or business key before applying effects. Pub/Sub also offers exactly-once delivery on pull subscriptions, which prevents redelivery of already-acknowledged messages, but that guarantee ends at the subscriber — it does not make downstream writes exactly-once. In practice, correctness is layered: Dataflow deduplicates redelivered Pub/Sub messages by message ID, or by a custom ID attribute you set at publish time to also catch publisher retries, and the final sink is made idempotent — MERGE on keys in BigQuery, or Storage Write API offsets. Mention ordering keys if per-entity ordering matters; they order delivery per key, not globally.

MediumHow do you orchestrate multi-service pipelines with Cloud Composer? What does a good DAG look like?

Cloud Composer is managed Apache Airflow, and the interview signal is knowing what belongs in Airflow versus outside it. A good DAG is a thin control plane: operators submit work to BigQuery, Dataflow, or Dataproc and wait for completion; Airflow workers never crunch the data themselves, because they are not sized for it. Structure DAGs around the execution date so every run is parameterised and rerunnable — a backfill then becomes re-triggering old dates. Use sensors or event-driven triggers for upstream availability rather than guessing with fixed delays; set retries with exponential backoff; make tasks idempotent so a retry cannot double-write. Keep dependencies explicit so partial failures resume from the failed task, not from the start. Add SLA or freshness alerts so a silently stuck DAG pages someone. Anti-patterns worth naming: giant Python transforms inside tasks, hidden cross-DAG dependencies, non-idempotent loads.

MediumHow do you keep BigQuery costs predictable on a shared data platform?

Two pricing models exist. On-demand bills per TB scanned, so cost control means scanning less: partition large tables by date and require partition filters, cluster on frequent filter columns, never SELECT * on wide tables, and use dry runs or the bytes-scanned estimate before running expensive queries. Capacity pricing through BigQuery editions buys slot capacity — dedicated compute with optional autoscaling — which makes spend predictable and usually wins once query volume is high and steady; reservations also isolate workloads, keeping ad-hoc analyst queries from starving scheduled pipelines. Platform-level guardrails matter too: custom quotas capping per-user or per-project daily scan volume, and monitoring job metadata in INFORMATION_SCHEMA to find the most expensive queries and the worst offenders. A strong answer picks a pricing model based on workload shape and names at least one guardrail — not just "use partitioning".

MediumHow would you design IAM for a data platform with multiple pipelines and teams?

Least privilege, applied with structure. Separate projects per environment — dev, staging, prod — so a mistake in dev cannot touch prod data. Give each pipeline its own service account, granted the narrowest predefined roles: BigQuery Data Editor on the specific target dataset plus Job User to run jobs, Storage Object Viewer on the source bucket — never project-level Editor or Owner, and treat basic roles as a red flag in any design. Grant human access through Google Groups mapped to job functions rather than individual bindings, so onboarding and offboarding become group membership changes. In BigQuery, control access at dataset level, use authorized views to expose subsets, apply policy tags for column-level security on PII, and add row-level policies where teams should see different slices. Keep audit logs enabled so access is provable. Interviewers specifically listen for per-pipeline service accounts and dataset-scoped grants.

MediumWhat are the options for streaming data into BigQuery, and how do you choose?

Four realistic options, ordered by complexity. Pub/Sub BigQuery subscriptions write topic messages directly into a table with no code — the right choice when raw events just need landing, untransformed. The Storage Write API is the modern high-throughput ingestion API applications can call directly; with committed streams and offsets it supports exactly-once semantics, and it supersedes the legacy insertAll streaming inserts, which cost more and offer only best-effort deduplication. Dataflow sits in the middle when the stream needs work before landing: parsing, enrichment via lookups, deduplication, windowed aggregation, or routing bad records to a dead-letter destination — its BigQuery sink uses the Storage Write API underneath. Decision rule for interviews: no transformation, use a BigQuery subscription; app-controlled writes, use the Storage Write API; any real processing, event-time logic, or dedup, use Dataflow. Naming the legacy option and why to avoid it shows currency.

HardDesign a streaming architecture: clickstream events must feed a near-real-time dashboard and stay exactly right for daily reporting. Handle late data.

Ingest clickstream events into a Pub/Sub topic. Two consumers: a Dataflow streaming job, plus an archive path — a second subscription or a side output — writing raw events to partitioned storage in Cloud Storage or a raw BigQuery table as the immutable source of truth. The Dataflow job parses and validates events, sends malformed ones to a dead-letter topic, then aggregates in event-time windows — say one-minute fixed windows keyed by page — with defined allowed lateness, emitting refinements as late events arrive. Aggregates land in a partitioned BigQuery table via the Storage Write API, and the dashboard queries that table. Data arriving after allowed lateness is why the reconciliation leg exists: a nightly Composer-scheduled batch job recomputes yesterday's aggregates from the raw archive, which has everything however late, and MERGEs corrections into the serving table. Real-time numbers are approximately right immediately, exactly right by morning — state that tradeoff explicitly.

HardDataflow claims exactly-once processing. How does it work, and where can duplicates still appear end to end?

Within the pipeline, Dataflow's streaming engine gives exactly-once processing: state and shuffle are checkpointed, and when failed work is retried, the runner deduplicates so each element affects state once. At the edges the guarantee erodes. On the source side, Pub/Sub redelivers unacknowledged messages; Dataflow deduplicates these by Pub/Sub message ID — or by a custom ID attribute attached at publish time, which also catches publisher-side retries that create distinct messages. The sink is the classic leak: if the pipeline writes to an external system and the write succeeds but its confirmation is lost, the retry double-writes. Mitigations: idempotent sinks such as MERGE on business keys, the BigQuery Storage Write API with committed streams and offsets, or accepting at-least-once into a raw table and deduplicating in a downstream view. Strong candidates explicitly separate "exactly-once processing" from "exactly-once end to end" — the latter needs source and sink cooperation.

HardHow would you migrate an on-prem Hadoop/Spark estate to GCP — lift-and-shift or re-platform?

Sequence it in phases and justify each. Phase one is lift-and-shift to Dataproc: run existing Spark and Hive jobs mostly unchanged, but replace HDFS with Cloud Storage through the GCS connector so storage and compute decouple. That single change enables ephemeral, job-scoped clusters that spin up, run, and delete — which is where most of the cost saving comes from versus an always-on cluster. Phase two re-platforms selectively: Hive and SQL-heavy workloads usually map cleanly to BigQuery ELT; Spark ETL either stays on serverless Spark or gets rewritten to Dataflow when streaming or Beam's model adds value; cron and Oozie-style orchestration moves to Composer. Decide per workload on effort versus payoff — rewrite the pipelines that run most often and cost the most, keep the long tail on Dataproc. De-risk with parallel runs comparing outputs before cutover, and migrate data before compute. Never propose a big-bang rewrite.

HardHow do you handle schema evolution and backfills in a production GCS/Dataflow/BigQuery pipeline without breaking consumers?

Treat additive change as the default and everything else as a migration. BigQuery lets you add NULLABLE columns and relax REQUIRED to NULLABLE in place; renames and type changes are not in-place operations, so plan them as new-column-plus-backfill or new-table-plus-swap. Protect consumers by having them read views, not tables — the view is the contract, so you can restructure the underlying table and adjust the view without breaking dashboards. For streaming pipelines, version the event schema — Avro or Protobuf with a schema-registry pattern — so old and new producers coexist, and make parsers tolerant of unknown fields. Backfills should reprocess from the immutable raw layer in Cloud Storage, partition by partition, into a shadow table; validate row counts and key aggregates against production, then swap the view atomically. Keeping the raw layer immutable is what makes any of this recoverable — say that explicitly in the interview.

FAQ

Common Questions

Do I need the Professional Data Engineer certification to get a GCP data engineering job?

No interview requires it, but it helps at the shortlisting stage — services companies staffing cloud-migration projects filter resumes on it, and GCP partner firms need certified headcount. Treat the exam guide as a prep syllabus either way: it maps almost one-to-one to the decision areas interviewers probe. What the certificate cannot replace is a hands-on pipeline you can walk through in detail; a candidate with a real project and no cert usually beats the reverse.

I have AWS or Azure experience. Can I clear a GCP data engineer interview?

Yes — the concepts transfer, and interviewers know it. Object storage and event buses behave similarly across clouds, so your pipeline-design instincts carry over. Spend prep time on what is genuinely different: BigQuery's serverless model with per-TB or slot-based pricing, and Dataflow's Beam model with watermarks and windowing, which has no exact twin elsewhere. In the interview, say the mapping out loud — "on AWS I did X, here I'd use Y because Z" reads as adaptability, not weakness.

How much coding is asked in GCP data engineer interviews — SQL or Python?

SQL is non-negotiable at every level: expect window functions, MERGE statements, and query-cost reasoning against partitioned tables. Python shows up in proportion to seniority — freshers may see basic scripting, while candidates with two-plus years should comfortably read and sketch Apache Beam transforms and Airflow DAG code, since Dataflow and Composer discussions often reference them. Full whiteboard Beam implementations are rare; explaining what a ParDo or a windowed aggregation does in code you are shown is common.

How is a GCP data engineer interview different from a BigQuery interview?

A BigQuery-specific round drills one engine: query optimisation, partitioning and clustering mechanics, slot behaviour, advanced SQL. A GCP data engineer round tests breadth: given a business scenario, can you assemble BigQuery, Dataflow, Pub/Sub, Composer, and Cloud Storage into a coherent, cost-sane architecture and defend it. Most interview loops include both styles — an architecture discussion plus at least one deep SQL exercise — so prepare the role-level breadth on this page alongside dedicated BigQuery depth rather than choosing between them.

What experience level are these questions aimed at?

The Easy set is fresher and screening-round territory — service purposes, storage classes, basic IAM. The Medium set matches two-to-four-year candidates and dominates most Indian interview loops: pipeline design, delivery semantics, cost control. The Hard set appears in design rounds for four-to-six-year roles: end-to-end streaming architectures, exactly-once boundaries, migration sequencing. Freshers should still read the Hard answers — recognising the shape of a reconciliation pattern, even without production experience, lifts your Medium answers noticeably.

Next Step

Turn The Guide Into Practice

Use PrepNPlaced tools to turn this learning path into resume proof, targeted practice, and interview-ready explanations.

Practice AI Mock Interview