BigData / Apache Iceberg Interview questions
What is schema evolution in Iceberg?
Schema evolution is Iceberg's ability to add, drop, rename, reorder, or widen the type of columns in a table's schema without needing to rewrite any of the table's existing data files, since Iceberg tracks a schema's column identity by a stable internal field ID rather than by column name or physical position.
ALTER TABLE events ADD COLUMN user_agent STRING; ALTER TABLE events RENAME COLUMN data TO payload;
Because each column has a permanent field ID assigned once and never reused, a rename operation just updates which name maps to an existing field ID in the metadata — the underlying Parquet files don't need to change at all, since Iceberg reads them by matching field IDs, not by matching whatever column name happens to be recorded in a given older file.
Similarly, adding a new column just updates the current schema in a new metadata file; older data files written before that column existed are treated as having a null value for it when read, and old queries or files aren't broken retroactively, which is a meaningfully more robust guarantee than Hive-style tables that often relied on fragile, position-based column matching prone to silently corrupting results after a schema change.
More Related questions...