BigData / Apache Iceberg Interview questions
What is the architecture of an Iceberg table?
An Iceberg table is organized as a tree-shaped hierarchy of metadata layers, each narrowing down from the table as a whole to the specific physical data files a query actually needs to read.
The catalog holds a pointer to the current metadata file; the metadata file (a JSON document) records the table's schema, partition spec, and the list of all snapshots along with which one is current; each snapshot points to a manifest list (an Avro file) that indexes the manifest files belonging to that snapshot; and each manifest file (also Avro) lists the actual data files, along with per-file statistics like row counts and column min/max values.
This layered design is what makes Iceberg's query planning efficient at scale: an engine can prune away entire manifests using just the manifest list's summary statistics, without ever opening the manifests themselves, and prune away entire data files using a manifest's own per-file statistics, without ever opening those data files — narrowing the search space at each layer before touching the next.
More Related questions...