easyMultiple Choice
PDE Practice Question: An online retailer uses BigQuery for analytics
An online retailer uses BigQuery for analytics. They have a time-series table with 5 billion rows and new data arrives every day. They want to optimize query performance and reduce costs by ensuring that queries scan only the partitions they need. Which table design should they use?
⚠ Common exam trap
Google Cloud often tests the distinction between partitioning (which prunes data at the storage level) and clustering (which only sorts data within a partition or table), leading candidates to mistakenly believe clustering alone can reduce bytes scanned for time-range queries.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Use a table partitioned on the timestamp column.
Partitioning on the timestamp column allows BigQuery to perform partition pruning, so queries with filters on that column only scan the relevant partitions. This directly reduces the amount of data read, lowering both query cost (pay-per-byte) and improving performance. For a 5-billion-row table with daily data arrival, time-unit partitioning is the standard design to meet the stated goals.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Use a table partitioned on the timestamp column.
Why this is correct
Partitioning the table on the timestamp column lets BigQuery prune partitions, so queries filtering by date scan only relevant partitions rather than all 5 billion rows. This cuts bytes processed, improving performance and lowering on-demand query costs.
- ✗
Use a table clustered on the timestamp column.
Why it's wrong here
Clustering sorts data within storage blocks but does not create separate partitions, so the engine cannot prune whole date ranges and still scans the full table's clustered blocks. It is tempting because it speeds filtered queries, and would be correct as a complement to partitioning, not a replacement.
- ✗
Use a table with no partitioning but use LIMIT in queries.
Why it's wrong here
LIMIT restricts returned rows after the query engine has already read the columns and partitions needed, so bytes billed and scan cost remain unchanged. It is tempting as a quick way to trim output during ad-hoc exploration, and would be correct only when the goal is previewing results, not reducing scanned data.
- ✗
Use a table partitioned by ingestion time with a partition expiration.
Why it's wrong here
Ingestion-time partitioning groups rows by arrival date, so a query filtering on an event timestamp column still scans every partition unless it filters on the ingestion pseudo-column. It is tempting because it suits append-only daily loads, and would be correct if queries filtered on ingestion time rather than the event timestamp.
Go deeper
Related to this question
About these practice questions
Courseiva writes every PDE question from scratch — 747 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PDE practice question is part of Courseiva's free Google Cloud certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PDE exam.