A snapshot tag is a named, immutable reference to a specific Apache Iceberg table snapshot. It preserves a known-good state for reproducible queries, audits, backfills, and controlled rollback while protecting that snapshot from expiration. section 11.2.2 section 10.3.2
Use tags deliberately because they connect version control with table maintenance:
- Choose tags for defined purposes such as monthly releases, audits, or backfills rather than general retention. section 11.2.2 section 10.3.2
- Apply tags after major compaction events so preserved snapshots reference optimized layouts instead of small files or delete artifacts. section 10.3.2
- Treat each tag as a retention anchor: expiration cannot remove its protected snapshot, increasing metadata and storage retention. section 10.3.2
- Distinguish table-scoped Iceberg tags from catalog-level systems such as Project Nessie, which can coordinate changes across tables. section 11.2.2 section 7.4.5
Reproducible release snapshot
A table can retain a tag such as release_2023_09 while newer snapshots become available. Downstream jobs can rerun against the same snapshot, whereas a dev branch may advance and expire after seven days. section 11.2.2
SELECT ref_name, type, snapshot_id, max_reference_age_in_ms FROM "db "."critical_fact_table.refs ";
Inspect the refs table to identify each reference's name, type, snapshot, and maximum reference age before changing retention or cleanup policies. section 11.2.2
