BigData / Apache Iceberg Interview questions
What is a snapshot in Apache Iceberg?
A snapshot represents the complete, immutable state of a table at one specific point in committed history — every snapshot has a unique ID, a parent snapshot ID, a timestamp, a summary of what changed, and a pointer to the manifest list describing exactly which data files belong to the table as of that snapshot.
Because snapshots are immutable once written — they never change after creation — every read against a specific snapshot always sees exactly the same, consistent data, which is the direct mechanism behind both Iceberg's time travel capability and its ability to give concurrent readers a stable view of the table even while writers are actively committing new changes elsewhere.
Every write to an Iceberg table — an insert, update, delete, or schema change — produces a brand-new snapshot rather than modifying an existing one, and the table's metadata file tracks the full list of snapshots along with which one is currently active, which is what allows both querying the table's present state and rolling back to (or querying) any prior snapshot in its history.
More Related questions...