Google

Professional Data Engineer Free Practice Questions

This is the free Google Professional Data Engineer practice question bank — 170 of 332 total questions, each with a full explanation, free to read with no signup required. Updated 2026-10-13.

Every answer is verified against official Google documentation — see our methodology.

Question 1

You receive data files in CSV format monthly from a third party. You need to cleanse this data, but every third month the schema of the files changes. Your requirements for implementing these transformations include: ✑ Executing the transformations on a schedule ✑ Enabling non-developer analysts to modify transformations ✑ Providing a graphical tool for designing transformations What should you do?

A. Use Dataprep by Trifacta to build and maintain the transformation recipes, and execute them on a scheduled basis
B. Load each month's CSV data into BigQuery, and write a SQL query to transform the data to a standard schema. Merge the transformed tables together with a SQL query
C. Help the analysts write a Dataflow pipeline in Python to perform the transformation. The Python code should be stored in a revision control system and modified as the incoming data's schema changes
D. Use Apache Spark on Dataproc to infer the schema of the CSV file before creating a Dataframe. Then implement the transformations in Spark SQL before writing the data out to Cloud Storage and loading into BigQuery
Show Answer
Correct Answer: A
Explanation:
Dataprep by Trifacta provides a graphical interface for analysts to create and update transformation recipes, making it suitable when the CSV schema changes periodically. The recipes can also be run on a schedule, satisfying the automation requirement.

Question 1

You are using Bigtable to persist and serve stock market data for each of the major indices. To serve the trading application, you need to access only the most recent stock prices that are streaming in. How should you design your row key and tables to ensure that you can access the data with the simplest query?

A. Create one unique table for all of the indices, and then use the index and timestamp as the row key design.
B. Create one unique table for all of the indices, and then use a reverse timestamp as the row key design.
C. For each index, have a separate table and use a timestamp as the row key design.
D. For each index, have a separate table and use a reverse timestamp as the row key design.
Show Answer
Correct Answer: A
Explanation:
Cloud Bigtable schema design recommends using a single table for related data and avoiding row keys that start with a (normal or reversed) timestamp because they create hotspots. Prefixing the row key with the index distributes writes. Although reversed timestamps are useful for reading the newest records first, options B and D start the row key with a reversed timestamp, which is discouraged. Among the available choices, using a single table with a row key beginning with the index is the best match.

Question 1

dataset.inventory_vm sample records: You have an inventory of VM data stored in the BigQuery table. You want to prepare the data for regular reporting in the most cost-effective way. You need to exclude VM rows with fewer than 8 vCPU in your report. What should you do?

Illustration for Professional Data Engineer question 1
A. Create a view with a filter to drop rows with fewer than 8 vCPU, and use the UNNEST operator.
B. Create a materialized view with a filter to drop rows with fewer than 8 vCPU, and use the WITH common table expression.
C. Create a view with a filter to drop rows with fewer than 8 vCPU, and use the WITH common table expression.
D. Use Dataflow to batch process and write the result to another BigQuery table.
Show Answer
Correct Answer: A
Explanation:
The vCPU value is stored in the nested `components` field, so `UNNEST` is needed to access each component and filter for `components.name = 'vcpu'` with `components.qty >= 8`. A standard view applies this filter at query time without storing a separately processed copy of the data, making it the cost-effective choice for regular reporting.

Question 1

You monitor and optimize the BigQuery instance for your team. You notice that a particular daily report that uses a large JOIN operation is consistently slow. You want to examine the query's execution plan to identify potential performance bottlenecks within the JOIN as quickly as possible. What should you do?

A. Use the bg query --dry_run command to review the estimated number of bytes read and review query syntax.
B. Run a query on the INFORMATION_SCHEMA.JOBS_BY_PROJECT view filtering by the job_ID and analyze total_bytes_processed.
C. Review the BigQuery audit logs in Cloud Logging.
D. Leverage BigQuery's Query History view and analyze the execution graph.
Show Answer
Correct Answer: D
Explanation:
The Query History execution graph (query plan) provides stage-by-stage execution details, including JOIN, shuffle, skew, slot usage, and other execution metrics that help identify performance bottlenecks quickly. A dry run only estimates bytes processed, INFORMATION_SCHEMA.JOBS views expose job metadata rather than the detailed execution graph, and audit logs are for auditing and operations rather than query plan analysis.

Question 1

Your company is planning to migrate a large on-premises data warehouse to BigQuery. The data is currently stored in a proprietary, vendor-specific format. You need to perform a batch migration of this data to BigQuery. What should you do?

A. Use the bq command-line tool to load the data directly from the on-premises data warehouse.
B. Export the data to CSV files, upload the files to Cloud Storage, then load the files into BigQuery.
C. Use the BigQuery Data Transfer Service.
D. Use Datastream to replicate the data in real time.
Show Answer
Correct Answer: B
Explanation:
BigQuery cannot load an unspecified proprietary warehouse format directly. Export the data to a supported format such as CSV, stage it in Cloud Storage, and run a batch load into BigQuery. BigQuery Data Transfer Service requires a supported source connector, which the question does not specify.

Question 2

You need to load a dataset with multiple terabytes of clickstream data into BigQuery. The data arrives each day as compressed JSON files in a Cloud Storage bucket. You need a low-cost, programmatic, and scalable solution to load the data into BigQuery. What should you do?

A. Create an external table in BigQuery pointing to the Cloud Storage bucket and run the INSERT INTO ... SELECT * FROM external_table command.
B. Use the BigQuery Data Transfer Service from Cloud Storage.
C. Create a Cloud Run function to run a Python script to read and parse each JSON file, and use the BigQuery streaming insert API.
D. Use Cloud Data Fusion to create a pipeline to load the JSON files into BigQuery.
Show Answer
Correct Answer: B
Explanation:
Use BigQuery Data Transfer Service to schedule recurring loads from Cloud Storage into BigQuery. It’s a managed, scalable batch-ingestion option that supports compressed JSON files, avoids custom parsing or streaming infrastructure, and is generally more cost-effective than querying the files or streaming rows individually.

Question 2

Your company's customer_order table in BigQuery stores the order history for 10 million customers, with a table size of 10 PB. You need to create a dashboard for the support team to view the order history. The dashboard has two filters, country_name and username. Both are string data types in the BigQuery table. When a filter is applied, the dashboard fetches the order history from the table and displays the query results. However, the dashboard is slow to show the results when applying the filters to the following query: How should you redesign the BigQuery table to support faster access?

Illustration for Professional Data Engineer question 2
A. Cluster the table by country and username fields.
B. Cluster the table by country field, and partition by username field.
C. Partition the table by country and username fields.
D. Partition the table by _PARTITIONTIME.
Show Answer
Correct Answer: A
Explanation:
Cluster the table by `country_name` and `username`. BigQuery clustering supports string columns and can reduce the data scanned for queries that filter on those fields; clustering does not require partitioning. The string columns cannot be used directly for partitioning, and partitioning by `_PARTITIONTIME` would not help these filters.

Question 2

Your company stores vital operational sales data in a BigQuery dataset in us-central1. Your company requires a disaster recovery plan to restore this data to us-east1 with a recovery point objective (RPO) of 24 hours and a recovery time objective (RTO) of 4 hours if us-central1 experiences an outage. You need to implement the disaster recovery plan while keeping costs and complexity to a minimum. What should you do?

A. Set up continuous queries and Pub/Sub to stream data changes from BigQuery tables in us-central1 to us-east1.
B. Manually export data to a CSV file in a multi-regional Cloud Storage bucket daily and use bq load to restore to us-east1.
C. Configure BigQuery cross-region dataset replication from ns-central1 to us-east1.
D. Take daily BigQuery table snapshots in us-central1.
Show Answer
Correct Answer: C
Explanation:
BigQuery cross-region dataset replication is designed for disaster recovery across regions with low operational overhead. Replication to us-east1 satisfies the 24-hour RPO requirement and enables much faster recovery than manual exports or snapshots, while avoiding the complexity of building a custom streaming pipeline. Daily exports and snapshots do not provide a cross-region ready-to-use dataset with the required recovery characteristics.

Question 3

You are designing a data mesh on Google Cloud by using Dataplex to manage data in BigQuery and Cloud Storage. You want to simplify data asset permissions. You are creating a customer virtual lake with two user groups: • Data engineers, which require full data lake access • Analytic users, which require access to curated data You need to assign access rights to these two groups. What should you do?

A. 1. Grant the dataplex.dataOwner role to the data engineer group on the customer data lake. 2. Grant the dataplex.dataReader role to the analytic user group on the customer curated zone.
B. 1. Grant the dataplex.dataReader role to the data engineer group on the customer data lake. 2. Grant the dataplex.dataOwner to the analytic user group on the customer curated zone.
C. 1. Grant the bigquery.dataOwner role on BigQuery datasets and the storage.objectCreator role on Cloud Storage buckets to data engineers. 2. Grant the bigquery.dataViewer role on BigQuery datasets and the storage.objectViewer role on Cloud Storage buckets to analytic users.
D. 1. Grant the bigquery.dataViewer role on BigQuery datasets and the storage.objectViewer role on Cloud Storage buckets to data engineers. 2. Grant the bigquery.dataOwner role on BigQuery datasets and the storage.objectEditor role on Cloud Storage buckets to analytic users.
Show Answer
Correct Answer: A
Explanation:
Grant `dataplex.dataOwner` to data engineers on the lake for full access across its data assets. Grant `dataplex.dataReader` to analytic users on the curated zone so they can read curated data without receiving access to other zones.

Question 3

A live TV show asks viewers to cast votes using their mobile phones. The event generates a large volume of data during a 3-minute period. You are in charge of the "Voting infrastructure" and must ensure that the platform can handle the load and that all votes are processed. You must display partial results while voting is open. After voting closes, you need to count the votes exactly once while optimizing cost. What should you do?

Illustration for Professional Data Engineer question 3
A. Create a Memorystore instance with a high availability (HA) configuration.
B. Create a Cloud SQL for PostgreSQL database with high availability (HA) configuration and multiple read replicas.
C. Write votes to a Pub/Sub topic and have Cloud Functions subscribe to it and write votes to BigQuery.
D. Write votes to a Pub/Sub topic and load into both Bigtable and BigQuery via a Dataflow pipeline. Query Bigtable for real-time results and BigQuery for later analysis. Shut down the Bigtable instance when voting concludes.
Show Answer
Correct Answer: D
Explanation:
Pub/Sub absorbs the brief traffic spike, while Dataflow scales the vote-processing pipeline and supports exactly-once processing. Bigtable provides low-latency reads for partial results during voting; BigQuery stores the votes for post-event counting and analysis. Removing the temporary Bigtable resource after voting closes helps control costs.

$19

Get all 332 questions with detailed answers and explanations

  • Instant download HTML + PDF delivered the moment payment clears.
  • Secure Stripe checkout we never see or store your card details.
  • 7-day refund if files are defective see our refund policy.