Skip to main content

Practice: Video Streaming Service

Premium

Scenario: You're designing a data model for Netflix to analyze viewing behavior, content performance, and personalization effectiveness.

Requirements:

  • Track viewing time and completion rates for content
  • Analyze user preferences and viewing patterns
  • Measure the effectiveness of content recommendations
  • Monitor streaming quality and user experience metrics
  • Analyze content performance by genre, creator, and release date

Task: Create a high-level dimensional model to support these requirements.

Identify the core business process. What is the central event that generates most of the required metrics? Think about what happens when a user watches content.

Consider the granularity of your fact table. At what level of detail do you need to store viewing data to support all required analyses? Think about the trade-offs between granularity and table size.

Identify dimensions. What contextual information is needed to analyze viewing events? Consider the "who, what, where, when" of the viewing process.

Think about slowly changing dimensions. Which entities might have attributes that change over time, and how should these changes be tracked?

Consider additional fact tables. Are there any metrics that might require a different grain or update frequency?