BigData / Apache Iceberg Interview questions
How do you migrate an existing Hive table to Iceberg?
Iceberg provides migration procedures specifically for converting an existing Hive (or other legacy) table into an Iceberg table, generally offering two approaches: an in-place migration that reuses existing data files without rewriting them, and a full snapshot/copy migration that creates an entirely separate new Iceberg table from the source data.
CALL catalog.system.migrate('db.legacy_hive_table'); -- Or, to create a new Iceberg table without altering the original: CALL catalog.system.snapshot('db.legacy_hive_table', 'db.new_iceberg_table');
The migrate procedure converts a table in place: it registers the existing underlying data files (typically Parquet or ORC) directly into a newly created Iceberg metadata layer, without physically rewriting that data, which makes the migration itself comparatively fast since it's primarily a metadata-generation operation rather than a full data copy.
The snapshot procedure instead creates a brand-new, separate Iceberg table pointing at the same underlying data files, leaving the original Hive table completely untouched and usable in parallel — a safer, more conservative option for validating that queries against the new Iceberg table behave correctly before committing to fully cutting over and retiring the original table.
More Related questions...