← All courses

🧊 Apache Iceberg & Table Formats

What turns a folder of Parquet into a table — snapshots and time travel, schema and partition evolution, and how Iceberg, Delta and Hudi differ where it matters.

No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.

Before you start: Data Warehousing — Series 3 · 20. That episode introduces the lakehouse — Parquet and Iceberg queried straight off files. This track is the format layer underneath it in depth, and it assumes you already know why anyone would want a table on object storage in the first place.

Short on time? The 14 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 · How a Table Format Works

snapshots, manifests, and why a commit is atomic

  1. 01

    A Folder Is Not a Table — the Five Things That Break Without a Manifest

    coreadvancedcoming soon
  2. 02

    Snapshots and Manifests — The Pointer Swap That Makes a Commit Atomic

    coreadvancedcoming soon
  3. 03

    Hidden Partitioning — Querying a Timestamp Without Knowing the Layout

    coreadvancedcoming soon
  4. 04

    Schema Evolution by Field ID — Why a Rename Costs Nothing and Breaks Nobody

    coreadvancedcoming soon
  5. 05

    Time Travel, Rollback and Branches — Reading the Table as It Was

    coreadvancedcoming soon

Series 2 · Running a Table

catalogs, writes, and the maintenance nobody warns you about

  1. 01

    Catalogs — Who Holds the Pointer, and Why You Must Choose One

    coreadvancedcoming soon
  2. 02

    Copy-on-Write Against Merge-on-Read — Deletes on Files That Cannot Change

    coreadvancedcoming soon
  3. 03

    Compaction and Expiry — the Maintenance Nobody Tells You Is Mandatory

    coreadvancedcoming soon
  4. 04

    Two Writers, One Pointer — Optimistic Concurrency and What Conflicts

    advancedcoming soon
  5. 05

    Engines — Spark, Flink, Trino, DuckDB and pyiceberg, and Their Uneven Support

    coreadvancedcoming soon
  6. 06

    Project — A Table That Survives a Schema Change, a Bad Write and a Rollback

    coreadvanced#projectcoming soon

Series 3 · Choosing a Format

Iceberg, Delta and Hudi — and whether you need any of them

  1. 01

    Delta Lake — A Transaction Log Instead of a Metadata Tree

    coreadvancedcoming soon
  2. 02

    Hudi — Built for Upserts and Incremental Reads First

    advancedcoming soon
  3. 03

    Choosing — What All Three Agree On, and What Actually Decides It

    coreadvancedcoming soon
  4. 04

    Do You Need a Table Format — or Would a Warehouse Have Given You All Three?

    coreadvancedcoming soon
  5. 05

    Project — Turn a Parquet Folder Into a Table Without Rewriting the Data

    coreadvanced#projectcoming soon

Not here, on purpose

  • Why a lakehouse instead of a warehouse — covered in Data Warehousing, Series 3 · 20, and compared against a columnar server at Data Warehousing, Series 3 · 35
  • The engines that read and write these tables — covered in Apache Spark, Apache Flink and DuckDB. Here the engine is the client and the format is the subject
  • Columnar storage and why Parquet is fast — covered in Data Warehousing, Series 2 · 00. Assumed here
  • Running a catalog service in production — covered in Data Ops for the operational discipline. In this course, Series 2 · 00 is what a catalog IS and how to choose one