BigData / Apache Iceberg Interview questions
What is the difference between Iceberg V1, V2, and V3 table specs?
Iceberg's table format specification has evolved through versioned revisions, each adding capabilities while remaining a well-defined, backward-compatible evolution rather than a breaking rewrite — a table's spec version is recorded in its metadata, and engines check this version to know which capabilities they can rely on.
| Spec Version | Key Additions |
| V1 | The original spec: schema, partitioning, snapshots, basic ACID guarantees |
| V2 | Row-level deletes (positional and equality), enabling merge-on-read |
| V3 | Further refinements including deletion vectors and row lineage support for improved CDC and update/delete efficiency |
V2's introduction of row-level delete files was a particularly significant addition, since it's specifically what made merge-on-read possible at all — V1 tables could only really support copy-on-write-style updates, since there was no standardized way to record "this specific row is deleted" without rewriting the file it belonged to.
Because spec versions are designed for backward compatibility, an engine that only understands V1 can typically still read basic data from a V2 or V3 table (though it may not correctly interpret V2/V3-specific features like delete files), which is why understanding a table's spec version matters when working across an ecosystem of tools that may have adopted newer spec capabilities at different rates.
More Related questions...