PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Meta

Design a scalable dimensional model

Last updated: Mar 29, 2026

Quick Overview

This question evaluates proficiency in dimensional data modeling and scalable analytics architecture, covering fact and dimension design, historical attribute tracking, cardinality, and many-to-many relationships for high-volume transactional event streams.

  • medium
  • Meta
  • System Design
  • Data Engineer

Design a scalable dimensional model

Company: Meta

Role: Data Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a dimensional model for a transactional analytics use case. 1) Specify the core fact table, including the grain, keys, and measures, and outline 4–5 dimension tables. 2) If you need to track attribute changes over time, describe how you would implement Slowly Changing Dimension Type 2 (SCD 2). 3) Describe the relationships between two example tables (one-to-many vs many-to-many) and how these cardinalities affect your schema. 4) Show how you would handle a many-to-many relationship (e.g., via a bridge table or an additional fact table) and discuss trade-offs. 5) Propose schema evolutions you would consider for new requirements (add a column, add a dimension, normalize a table, add a fact) and justify scalability impacts, aiming to keep a single authoritative fact table when possible.

Quick Answer: This question evaluates proficiency in dimensional data modeling and scalable analytics architecture, covering fact and dimension design, historical attribute tracking, cardinality, and many-to-many relationships for high-volume transactional event streams.

Related Interview Questions

  • Design an Online Game Leaderboard - Meta (hard)
  • Design an Instagram-like Media Feed - Meta (medium)
  • Design an Online Judge and Live Comments - Meta (medium)
  • Design an Instagram-like platform - Meta (medium)
  • Design a Coding Contest Platform - Meta (medium)
Meta logo
Meta
Sep 6, 2025, 12:00 AM
Data Engineer
Onsite
System Design
9
0

Design a Dimensional Model for Transactional Analytics (Concrete Example Included)

You are building a star-schema in a cloud data warehouse for near real-time transactional analytics. Assume a high-volume ads platform with three key event types: impressions (delivery), clicks, and conversions (downstream actions). Stakeholders need accurate, drillable reporting by user, device, campaign, and placement.

Tasks

  1. Core Fact Table
    • Define the core fact table for delivery events.
    • Specify the grain, surrogate/natural keys, degenerate keys, and measures.
    • Outline 4–5 key dimension tables (names, purpose, and example attributes).
  2. Slowly Changing Dimensions (SCD Type 2)
    • Describe how you would track attribute changes over time (e.g., a user’s country, a campaign’s status) using SCD Type 2.
  3. Relationships and Cardinalities
    • Pick two example tables and describe their relationship (one-to-many vs. many-to-many).
    • Explain how these cardinalities impact schema design and query behavior.
  4. Handling Many-to-Many
    • Show how you would handle a many-to-many relationship (e.g., impression-to-conversion attribution) using a bridge table or an additional fact table.
    • Discuss trade-offs in performance, storage, and correctness.
  5. Schema Evolution
    • Propose evolutions you would consider for new requirements (e.g., add a column, add a dimension, normalize a table, add a fact).
    • Justify scalability impacts and how you would preserve a single authoritative fact table when possible.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Meta•More Data Engineer•Meta Data Engineer•Meta System Design•Data Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.