Model Data for Analytics, Reporting, and Applications

Quick Overview

Learn to model shared facts, dimensions, history, and metrics for analytics, reproducible reporting, and low-latency data applications.

Model Data for Analytics, Reporting, and Applications

Company: ByteDance

Role: Data Engineer

Category: Data Manipulation (SQL/Python)

Difficulty: medium

Interview Round: HR Screen

# Model Data for Analytics, Reporting, and Applications Describe how you would model a shared business domain so that exploratory analytics, recurring reports, and data-backed applications can use it without creating contradictory definitions. Address source ingestion, facts and dimensions, history, data contracts, and serving patterns. ### Constraints & Assumptions - Source systems update at different cadences and can emit corrections. - Reports require reproducible historical values. - Applications need lower latency than most analytical scans. - Sensitive attributes require controlled access. - One metric definition should be reused across consumers. ### Clarifying Questions to Ask - Which entities, events, and business metrics are authoritative? - Is historical point-in-time reconstruction required? - What freshness and latency does each consumer need? - Which dimensions change over time? ```hint Start from grain For every fact table, state exactly what one row represents before choosing keys, dimensions, or aggregates. ``` ### What a Strong Answer Covers - Explicit grains, keys, facts, dimensions, and slowly changing attributes - Reproducible metric definitions and correction handling - Separate analytical and low-latency serving projections - Contracts, lineage, quality checks, and access control ### Follow-up Questions 1. How would you reproduce a report after a customer's segment changes? 2. Where should a shared metric definition live? 3. What signals show that an application should not query the warehouse directly?

Quick Answer: Learn to model shared facts, dimensions, history, and metrics for analytics, reproducible reporting, and low-latency data applications.

|Home/Data Manipulation (SQL/Python)/ByteDance
ByteDance logo
ByteDance
Aug 28, 2026
mediumData EngineerHR ScreenData Manipulation (SQL/Python)
3
0

Model Data for Analytics, Reporting, and Applications

Describe how you would model a shared business domain so that exploratory analytics, recurring reports, and data-backed applications can use it without creating contradictory definitions. Address source ingestion, facts and dimensions, history, data contracts, and serving patterns.

Constraints & Assumptions

  • Source systems update at different cadences and can emit corrections.
  • Reports require reproducible historical values.
  • Applications need lower latency than most analytical scans.
  • Sensitive attributes require controlled access.
  • One metric definition should be reused across consumers.

Clarifying Questions to Ask Guidance

  • Which entities, events, and business metrics are authoritative?
  • Is historical point-in-time reconstruction required?
  • What freshness and latency does each consumer need?
  • Which dimensions change over time?

What a Strong Answer Covers Guidance

  • Explicit grains, keys, facts, dimensions, and slowly changing attributes
  • Reproducible metric definitions and correction handling
  • Separate analytical and low-latency serving projections
  • Contracts, lineage, quality checks, and access control

Follow-up Questions Guidance

  1. How would you reproduce a report after a customer's segment changes?
  2. Where should a shared metric definition live?
  3. What signals show that an application should not query the warehouse directly?
Loading comments...