Back to work

End-to-end data pipeline & BI dashboards on 200M+ IMDb records

Role

Data Engineer (team of 2)

Year

2025

IMDb analytics data pipeline
Azure Data FactorySnowflakeAlteryxPower BITableauPythonER Studio

200M+

Records processed

7

Source datasets

91M

Cast/crew links

2-layer

Snowflake warehouse

System Architecture

The Problem

IMDb publishes its full catalog as raw, messy public data — ~200 million records across seven datasets, riddled with placeholder values, string-encoded numbers, and multi-valued fields. In that state it's useless for analytics. The goal was to turn it into a clean, trustworthy warehouse that powers self-service BI.

What I Built

An end-to-end pipeline from raw TSV to dashboards:

  • Ingestion of seven compressed IMDb TSV datasets (~200M records total, up to 91M rows in a single table)
  • Data profiling and cleaning in Alteryx + Python — normalizing IMDb's \N placeholders to NULLs, casting string-encoded numerics, and validating logical constraints
  • Azure Data Factory pipelines for automated, dependency-aware loads with error handling and re-runs
  • A two-layer Snowflake warehouse: 7 staging tables (cleaned raw) feeding a curated dimensional layer optimized for BI
  • Power BI and Tableau dashboards over the curated layer — genre trends, rating distributions, and cast/crew participation

Key Decisions

The trade-offs — and why:

  • Separated staging from a curated analytics layer so heavy cleaning never slows down BI queries
  • Profiled every dataset before loading to catch quality issues upfront instead of debugging dashboards later
  • Leaned on ADF's dependency-aware orchestration because the seven datasets must load in order to preserve referential integrity
  • Gave the 51M-row alternate-titles dataset (title.akas) special handling to enable region and language analysis

Challenges

The hard parts:

  • Scale: single tables up to 91M rows meant profiling and loads had to be batched and pushed down into Snowflake rather than done in memory
  • Messy source data: IMDb's \N placeholders, string-encoded numerics, and multi-valued fields all needed consistent global cleaning rules
  • Trust: added row-count reconciliation and primary-key uniqueness checks across every pipeline layer so the dashboards could be relied on

Results

A clean, queryable IMDb warehouse validated end-to-end with row-count reconciliation and PK-uniqueness checks, serving Power BI and Tableau dashboards for genre trends, rating distributions, content-type comparisons, and cast/crew analysis.

What's Next

Incremental refreshes as IMDb updates its datasets, adding dbt tests to the transformation layer, and a semantic metrics layer for consistent KPIs across BI tools.