S3 Tables — AWS's fully managed Iceberg storage with automated table maintenance and compaction — now supports all Apache Iceberg V3 data types. V3 is the version where Iceberg's delete story changes in a way that matters for real pipelines: deletion vectors replace the rewrite-heavy delete files of V2.
In V2, every delete rewrote data files and delete files — expensive on high-churn tables. V3 introduces positional deletion vectors: deletes are tracked as lightweight row positions without rewriting entire files. That translates directly to faster updates and cheaper storage operations on frequently modified tables.
V3 also adds row lineage metadata — each row tracks its provenance and last-update sequence number — which unlocks genuinely efficient incremental pipelines.
AWS provides backwards compatibility for both versions to minimize disruption. Existing V2 readers keep working on upgraded tables until you fully adopt V3 features.
Upgrading is atomic and requires no data rewrite:
ALTER TABLE my_catalog.namespace.existing_table
SET TBLPROPERTIES ('format-version' = '3')
On the next compaction cycle, S3 Tables remove old V2 delete files. New modifications use deletion vectors automatically, and row lineage initializes on the first data modification after the upgrade.
One caveat: this is a one-way operation — Iceberg does not support downgrading from V3 to V2. Verify that all engines accessing the table support V3 before upgrading.
Once your table has V3 data, use row lineage to build efficient incremental pipelines — for example:
SELECT *, _row_id, _last_updated_sequence_number FROM ...
Instead of full scans or timestamp heuristics, you can process exactly the rows that changed since a known sequence number.
If you run high-churn Iceberg tables on S3 Tables, V3's deletion vectors alone justify the switch — cheaper deletes, no full-file rewrites, faster compactions. The atomic no-rewrite upgrade makes it low-risk; just confirm engine support first, since there's no going back.