← All courses
🏛️ Data Warehousing
OLTP vs. OLAP, facts and grain, columnar engines (DuckDB and ClickHouse), cubes and pre-aggregation.
No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.
Before you start: Learn SQL — Series 2. Everything here is a GROUP BY over a join, then the same query made to read less data. Series 2 is where multi-table joins and CTEs stop being an obstacle.
Short on time? The 23 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.
Series 1 · Warehousing Fundamentals
build a warehouse, load it, and prove it matches the source
- 01
OLTP vs OLAP — Two Workloads That Need Different Table Designs
corebeginner#kimballcoming soon - 02
Warehouse, Lake & Lakehouse — What Each One Actually Is
corebeginner#kimball#inmoncoming soon - 03
The Star Schema from the Query Side — Why Analysts Like It
corebeginner#kimballcoming soon - 04
Facts, Dimensions & Grain in Practice — Reading Someone Else's Warehouse
corebeginner#kimballcoming soon - 05
Loading the Warehouse — From Northwind OLTP to fact_sales
corebeginner#kimballcoming soon - 06
Reconciling With the Source — Proving the Warehouse Agrees With the App
corebeginnercoming soon - 07
Slice, Dice, Roll-Up & Drill-Down — The Four Analytical Moves
corebeginner#kimballcoming soon - 08
ROLLUP, CUBE & GROUPING SETS — Subtotals the Standard Way
corebeginnercoming soon - 09
Pre-Aggregation — Summary Tables and Materialized Views
corebeginner#kimballcoming soon - 10
Time-Based Analysis — The Date Dimension Doing Real Work
corebeginner#kimballcoming soon - 11
Project — One Star Schema, Loaded and Queried
corebeginner#projectcoming soon
Series 2 · Columnar Engines & Cubes
make queries fast with columnar engines and cubes
- 01
Columnar Storage — Why Analytics Loves Columns
coreintermediate#stonebrakercoming soon - 02
Inside a Parquet File — Row Groups, Encodings and Why Skipping Works
coreintermediate#melnik-dremelcoming soon - 03
DuckDB — An Analytical Warehouse That Runs Inside Your Process
coreintermediatecoming soon - 04
ClickHouse & MergeTree — Columnar Storage on a Server, at Scale
coreintermediatecoming soon - 05
Partitioning, Sort Keys & Data Skipping — Read Less, Answer Sooner
coreintermediatecoming soon - 06
Storage and Compute, Separated — Reads Cross a Network, Compute Can Sleep
coreintermediatecoming soon - 07
The Semantic Layer — Dimensions, Measures and Hierarchies, Declared Once
coreintermediatecoming soon - 08
Kinds of Semantic Layer — In the BI Tool, Standalone, or in Your Project
intermediatecoming soon - 09
Reading Cubes Somebody Else Built — Sales, Inventory, Customers and HR
intermediatecoming soon - 10
Querying a Cube — Pick the Fields, Then Read the SQL It Wrote for You
intermediatecoming soon - 11
Materialized Views & Incremental Aggregation — Compute Once, Read Often
coreintermediatecoming soon - 12
Star vs One Big Table on Columnar Engines — Measured on the Same Data
intermediatecoming soon - 13
Compression & Encoding — Why the Same Table Is Ten Times Smaller Here
intermediatecoming soon - 14
Project — The Same Question, Reading a Tenth of the Data
coreintermediate#projectcoming soon
Series 3 · Advanced Warehousing
billions of rows, streaming loads, and controlling the cost
- 01
Query Performance on Columnar Engines — Reading the Plan Again
coreadvancedcoming soon - 02
Aggregating Materialized Views & Projections — ClickHouse Computing the Total at Insert Time
advancedcoming soon - 03
Slowly Changing Dimensions in the Warehouse — Querying History Correctly
coreadvanced#kimballcoming soon - 04
Billions of Rows — Partitions, Sharding & Distribution
advancedcoming soon - 05
Lakehouse — Parquet, Iceberg and DuckDB Straight on Files
advanced#armbrust-lakehousecoming soon - 06
Querying Across Databases — Federation, and Where the Join Actually Runs
advancedcoming soon - 07
Streaming Ingestion — Minutes Behind Instead of a Day
advancedcoming soon - 08
Cost & Storage — Compression, TTL and Tiering
advancedcoming soon - 09
Benchmark — The Same Star Schema on DuckDB vs ClickHouse
advancedcoming soon - 10
From Warehouse to BI — Feeding Dashboards, Cubes and Extracts
advancedcoming soon - 11
Project — The Whole Northwind Warehouse, on Two Engines, Reconciled
coreadvanced#projectcoming soon
Where this leads
- Apache Iceberg & Table Formats — starts from Series 3 · 20.
- Trino — starts from Series 2, and Series 3.
Not here, on purpose
- Designing the dimensional model — grain, SCD type, star vs snowflake — covered in Data Modeling; here you build and query the model
- The pipelines that load it — covered in ETL & Data Pipelines and Analytics Engineering with dbt
- Dashboards, metric definitions and delivery to business users — covered in BI & Data Visualization
- Writing the analytical queries themselves — window functions, CTEs, tuning — covered in Learn SQL — here the query is given and the question is how much data it had to read
- Running the server — backups, replication, upgrades, on-call — covered in Data Ops
- Reading a cube from a dashboard, and the charts built on it — covered in BI & Data Visualization, which consumes a cube. In this course, Series 2 designs and builds one
- Deciding the star's grain, its SCD type and star vs snowflake — covered in Data Modeling, Series 3. In this course, Series 1 · 20 loads a design somebody has already made and Series 1 · 10 queries it