🔥 40% Off Crucial Exams Memberships — Deal ends today!

1 hour, 26 minutes remaining!

GCP Professional Data Engineer Practice Question

You are designing a BigQuery warehouse for an online-learning platform. Each test submission arrives as a JSON object that contains metadata about the submission (submission_id, student_id, timestamp, total_score) and an array of 40-60 questionResponse objects (question_id, is_correct, score). Analysts frequently need daily reports showing the average test score per student and occasionally need to drill into individual question responses for troubleshooting. You must minimize storage scanned and avoid joins during typical queries. Which table design best meets these requirements?

  • Create one table with a row per submission and an ARRAY<STRUCT<question_id INT64, is_correct BOOL, score FLOAT64>> column to store all question responses for that submission.

  • Create a wide, flattened table with one row per question response. Duplicate submission metadata columns across every row.

  • Create two tables: a submission fact table and a questionResponses dimension table keyed by submission_id, and join them at query time.

  • Store the raw JSON files in Cloud Storage and query them as an external table to avoid schema design changes.

GCP Professional Data Engineer
Storing the data
Your Score:
Settings & Objectives
Random Mixed
Questions are selected randomly from all chosen topics, with a preference for those you haven’t seen before. You may see several questions from the same objective or domain in a row.
Rotate by Objective
Questions cycle through each objective or domain in turn, helping you avoid long streaks of questions from the same area. You may see some repeat questions, but the distribution will be more balanced across topics.

Check or uncheck an objective to set which questions you will receive.

Bash, the Crucial Exams Chat Bot
AI Bot