RAW DATA: 1,243 raw match files containing nested ball-by-ball JSON structureRAW DATA250K+ MATCH EVENTSBRONZE LAYER: Raw ingestion layer. Appends metadata and preserves immutable raw state as Parquet format.BRONZEBRONZE LAYERRAW INGESTIONSYS: INGESTSILVER LAYER: Cleaned, conformed, deduplicated, and schema-enforced records ready for analytic queries.SILVERSILVER LAYERTRANSFORMEDPYSPARK ENGINEGOLD LAYER: Richly aggregated business-level tables optimized for rapid reporting and FastAPI analytics endpoints.GOLDGOLD LAYERANALYTICS READYDB: PARQUETAPI & SERVING: FastAPI endpoints consuming optimized Gold parquet data to feed Next.js web application views.INSIGHTS ↗KPI DASHBOARD SERVING
RAW DATA: 1,243 raw match files containing nested ball-by-ball JSON structureRAW DATA250K+ MATCH EVENTSBRONZE LAYER: Raw ingestion layer. Appends metadata and preserves immutable raw state as Parquet format.BRONZEBRONZE LAYERRAW INGESTIONSYS: INGESTSILVER LAYER: Cleaned, conformed, deduplicated, and schema-enforced records ready for analytic queries.SILVERSILVER LAYERTRANSFORMEDPYSPARK ENGINEGOLD LAYER: Richly aggregated business-level tables optimized for rapid reporting and FastAPI analytics endpoints.GOLDGOLD LAYERANALYTICS READYDB: PARQUETAPI & SERVING: FastAPI endpoints consuming optimized Gold parquet data to feed Next.js web application views.INSIGHTS ↗KPI DASHBOARD SERVING
Scroll Down
Medallion Architecture
FROM RAW DELIVERIES TO GOLD INSIGHTS.
CricWarehouse processes 1,243 matches and 250,000+ deliveries through three schema-validated layers using PySpark 4.1.
01
INGESTION & STORAGEBRONZE LAYER
Raw IPL JSON and match data
Schema validation & enforcement
Ingested directly from raw ball-by-ball matches
Partitioned by season key
Immutable write pattern
02
PROCESSING & CLEANINGSILVER LAYER
Cleaned, validated, and transformed PySpark datasets
PySpark deduplication & cleaning
Null values & format normalization
Feature engineering (runs, strike rates)
Enriched schemas stored as Parquet
03
AGGREGATION & SERVINGGOLD LAYER
Aggregated player, team, season, and match analytics
Analytics-ready SQL rollup views
Aggregated player & team standings
Optimized query performance profiles
Direct consumption via Dashboard API
1,243
Matches Indexed
250k+
Ball Events
19
IPL Seasons
3
Pipeline Layers
Player Analytics
THE NUMBERSBEHIND THE LEGENDS.
18
VIRAT KOHLI
JERSEY #18 · ACTIVE SINCE 2008
VIRAT KOHLI
8,004
RUNS FROM PIPELINE243 INNINGS · STRIKE RATE: 131.2 · AVG: 37.2Data computed from 1,243 JSON files via PySpark silver layer
7
MS DHONI
JERSEY #07 · ACTIVE SINCE 2008
MS DHONI
4,746
RUNS FROM PIPELINE5× CHAMPION · STRIKE RATE: 135.2 · AVG: 38.8Data computed from 1,243 JSON files via PySpark silver layer
45
ROHIT SHARMA
JERSEY #45 · ACTIVE SINCE 2008
ROHIT SHARMA
6,628
RUNS FROM PIPELINE257 MATCHES · STRIKE RATE: 131.3 · AVG: 29.5Data computed from 1,243 JSON files via PySpark silver layer