Iceberg tables: New write location for empty string BASE_LOCATION (Pending)


This behavior change is in the 2024_03 bundle.

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

For Iceberg tables that use Snowflake as the catalog, the write location is as follows when you specify an empty string as the relative path from your external volume (BASE_LOCATION = ''):

Before the change:

Snowflake creates a directory under your external volume location (STORAGE_BASE_URL) using the table name and entity ID, and writes to subdirectories named data and metadata in the new directory.

For example:

  • s3://my/storage/base/url/table_name_entity_id/data

  • s3://my/storage/base/url/table_name_entity_id/metadata

After the change:

Snowflake writes to subdirectories named data and metadata that appear directly under your external volume location.

For example:

  • s3://my/storage/base/url/data

  • s3://my/storage/base/url/metadata

You can still access any data that was written before the behavior change in the previous locations under the table_name_entity_id directory.

This behavior change also applies to converted Iceberg tables.

Ref: 1534