What Iceberg actually is
Apache Iceberg is a table format. Parquet is a file format. People confuse them. Parquet stores rows in columnar layout. Iceberg sits on top and tracks which Parquet files belong to a table at which version. The result is real ACID-style guarantees on top of a folder of Parquet.
Iceberg metadata tree
CREATE OR REPLACE ICEBERG TABLE WAREHOUSE_WEATHER_DATA_DB.PUBLIC.weather_actual_data_timeseries
CATALOG = 'glueCatalog_WarehouseWeatherData'
EXTERNAL_VOLUME = 'warehouse_weather_data_vol'
CATALOG_TABLE_NAME = 'weather_actual_data_timeseries';A snippet from the Snowflake side: register the Iceberg table that Glue is writing. The catalog and external volume are how Snowflake knows where to look.
Time travel falls out of the snapshot model for free. Reading "the table as of last Tuesday" is a metadata lookup, not a backup restore. Schema evolution is the same: adding a column writes a new manifest entry, no data rewrite needed.
It gives you ACID-style snapshot isolation. A reader sees a consistent snapshot of the table even if a writer is committing right now. That is the property that lets Snowflake and Athena query the same Iceberg table while Glue is writing without seeing partial commits.
Matching exercise: File format vs. table format
Loading practice…