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 calledBASE_LOCATION_PREFIX
.If you specify a
BASE_LOCATION
, Snowflake ignores and does not use theBASE_LOCATION_PREFIX
.Snowflake constructs paths using the following patterns, depending on the values specified for
BASE_LOCATION
orBASE_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