Registering external Iceberg tables

After Catalog Integration plus External Volume, registering an Iceberg table in Snowflake is one DDL statement. The catalog tells Snowflake where the metadata is. The volume tells Snowflake where the data is. Snowflake links them via CATALOG_TABLE_NAME.

snowflake/creating_tables.sql
sql
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';

One Iceberg table registration. Repeat per Glue table. CATALOG_TABLE_NAME must match exactly the table name in the Glue Data Catalog.

A practical test: write a row from Glue, count from Snowflake, count from Athena. After the refresh interval, both engines see the same count. Different counts mean either a path mismatch (External Volume points wrong) or a stale Snowflake cache (hit REFRESH).

Yes. Standard Snowflake views work over external Iceberg tables. dbt models work too. Anything that reads via SQL treats the Iceberg table the same as a managed one. The difference is invisible above the storage layer.

Quiz: Quiz

Loading practice…