BigData / Apache Iceberg Interview questions
What are branches and tags in Apache Iceberg?
Branches and tags are named references to specific points in a table's snapshot history, giving human-readable, stable names to otherwise opaque numeric snapshot IDs, and differing in whether that reference can continue accumulating new snapshots of its own.
ALTER TABLE events CREATE BRANCH audit_branch; ALTER TABLE events CREATE TAG release_2026_01 AS OF VERSION 89347598; SELECT * FROM events.branch_audit_branch; SELECT * FROM events.tag_release_2026_01;
A tag is a fixed, read-only reference to one specific snapshot — useful for marking a meaningful point in history, like "the state of this table when a specific report was generated," similar in spirit to a Git tag marking a release.
A branch, by contrast, is a separate, independently-evolving line of snapshot history forked from a point in the table's timeline — new writes can be committed specifically to a branch without affecting the table's main line of history, which is useful for experimentation, staged data validation, or testing a risky transformation in isolation before merging its results (or discarding them) relative to the main branch.
More Related questions...