nerdexam
Google

PROFESSIONAL-DATA-ENGINEER · Question #334

You are designing a data warehouse in BigQuery to analyze sales data for a telecommunication service provider. You need to create a data model for customers, products, and subscriptions. All…

The correct answer is D. Create a denormalized, append-only model with nested and repeated fields. Use the ingestion timestamp to track historical data. Option D is correct because BigQuery is an OLAP system optimized for denormalized, wide tables - nested and repeated fields eliminate costly JOINs, keeping queries simple and fast. An append-only pattern means every monthly update adds new rows rather than overwriting existing…

Submitted by kim_seoul· Mar 30, 2026Designing data processing systems

Question

You are designing a data warehouse in BigQuery to analyze sales data for a telecommunication service provider. You need to create a data model for customers, products, and subscriptions. All customers, products, and subscriptions can be updated monthly, but you must maintain a historical record of all data. You plan to use the visualization layer for current and historical reporting. You need to ensure that the data model is simple, easy-to-use, and cost-effective. What should you do?

Options

  • ACreate a normalized model with tables for each entity. Use snapshots before updates to track historical data.
  • BCreate a normalized model with tables for each entity. Keep all input files in a Cloud Storage bucket to track historical data.
  • CCreate a denormalized model with nested and repeated fields. Update the table and use snapshots to track historical data.
  • DCreate a denormalized, append-only model with nested and repeated fields. Use the ingestion timestamp to track historical data.

How the community answered

(24 responses)
  • A
    4% (1)
  • B
    4% (1)
  • C
    13% (3)
  • D
    79% (19)

Explanation

Option D is correct because BigQuery is an OLAP system optimized for denormalized, wide tables - nested and repeated fields eliminate costly JOINs, keeping queries simple and fast. An append-only pattern means every monthly update adds new rows rather than overwriting existing ones, so the full history is preserved by design; filtering by ingestion timestamp lets you query either current or historical state without any extra infrastructure.

Option A fails on two counts: normalized schemas force expensive JOINs that BigQuery is not designed for, and "snapshots before updates" adds operational complexity (and cost) compared to simply appending rows.

Option B fails because keeping raw input files in Cloud Storage does not make historical data queryable in a visualization layer - it's an archival workaround, not a data warehouse pattern, and a normalized model is still the wrong choice for BigQuery.

Option C is almost right but falls short: updating the table in place destroys the record you're trying to preserve, and relying on snapshots for history adds complexity that the append-only approach avoids entirely.

Memory tip: Think "append, don't amend" for BigQuery history. Flat + wide (denormalized/nested) for structure, timestamp for time travel - no extra tools needed.

Topics

#BigQuery#Data Modeling#Historical Data#Cost Optimization

Community Discussion

No community discussion yet for this question.

Full PROFESSIONAL-DATA-ENGINEER Practice