Apache Iceberg™: New write paths for Snowflake-managed tables (Pending)

Attention

This behavior change is in the 2025_01 bundle.

For the current status of the bundle, refer to Bundle History.

For Snowflake-managed Iceberg tables (including converted tables and dynamic Iceberg tables):

Before the change:

Snowflake requires that you specify a BASE_LOCATION for the table, and writes Parquet data files and table metadata to the following paths in your external cloud storage:

  • STORAGE_BASE_URL/BASE_LOCATION/data/

  • STORAGE_BASE_URL/BASE_LOCATION/metadata/

After the change:

Snowflake no longer requires a BASE_LOCATION, and constructs paths using a random 8-character string or the value of a new schema-level string parameter called BASE_LOCATION_PREFIX.

If you specify a BASE_LOCATION, Snowflake ignores and does not use the BASE_LOCATION_PREFIX.

Snowflake constructs paths using the following patterns, depending on the values specified for BASE_LOCATION or BASE_LOCATION_PREFIX:

  • No BASE_LOCATION, no BASE_LOCATION_PREFIX: STORAGE_BASE_URL/<database>/<schema>/<table_name>.<randomId>/<data | metadata>/

  • No BASE_LOCATION, BASE_LOCATION_PREFIX = ‘my_prefix’: STORAGE_BASE_URL/my_prefix/<table_name>.<randomId>/<data | metadata>/

  • BASE_LOCATION = ‘my_base_loc’: STORAGE_BASE_URL/my_base_loc.<randomId>/<data | metadata>/

  • BASE_LOCATION = ‘’ (empty string): STORAGE_BASE_URL/<randomId>/<data | metadata>/

Ref: 1873