Progress
1 visited Β· 0 revised
Chapter
6 / 10
See the trusted tables, columns, and joins in one schema canvas
Hover any table or field to understand what it means, how it gets built, and how it joins into facts, marts, and features.
Fact-dimension ER diagram
Hover any table or column to inspect meaning, joins, and the row object used to build that table.
Hover inspector
fact_watch_session
Grain
One row per user-profile-content-device-session
Partition
event_date
Bucket
user_id or content_id depending workload
Use case
Official watch-time, completion, binge, QoE, and recommendation features.
Prepared by
Built from playback heartbeats, pause, seek, and QoE signals after Flink sessionization, deduplication, and late-event correction merges.
Table meaning
Why is completion_pct based on unique content coverage instead of total watch seconds?
Official watch-time, completion, binge, QoE, and recommendation features.
Row object shape
class FactWatchSessionRow {watch_session_id: string;user_id: number;profile_id: number;content_id: number;device_id_hash: string;session_start_ts: string;static fromEventStream(events: CanonicalEvent[]): FactRow { ... }attachDimensionKeys(lookups: DimensionLookups): void { ... }validateRequiredKeys(): boolean { ... }emitWarehouseRow(): Record<string, unknown> { ... }}
Explain the model by grain first
Start from the session fact, then show which dimensions explain it and which marts or features it feeds later.
Interview answer
I start with the grain of the core fact, usually one trusted playback session per profile-title-device. Then I explain which dimensions add stable context such as content, geography, device, app version, and experiment treatment. After that I show which lower-level facts still exist for debugging, like playback events or QoE incidents, and which downstream tables are derived from the trusted fact, like daily content marts and recommendation or feature tables. The point is to separate raw event history, trusted analytical facts, reusable dimensions, and business-owned marts so every consumer reads the same truth at the right level.
Last reviewed June 2026 Β· By Prasoon Parashar
Numbers are interview assumptions, not real Netflix internal figures.