Snowflake Storage for Apache Iceberg™ Tables

This preview introduces support for Snowflake Storage for Apache Iceberg™ Tables.

Just like standard Snowflake tables, this feature lets you to create Snowflake-managed Iceberg tables in Snowflake. With this option, Snowflake stores and manages the Iceberg table files for you by using Snowflake (internal) storage, so you don’t need to set up access to external cloud storage.

This feature works with the Snowflake Horizon Catalog, so you can use an external query engine to connect to an Iceberg table that uses Snowflake storage. For more information, see Snowflake Horizon Catalog를 통해 외부 엔진이 있는 Apache Iceberg™ 테이블 쿼리하기. In addition, you can query these same tables in Snowflake.

참고

This feature is currently available only for accounts hosted on Amazon Web Services (AWS) or Azure.

Create an Iceberg table with Snowflake storage

To create an Iceberg table that uses Snowflake storage:

  1. Create an external volume with the new option for Snowflake storage: STORAGE_PROVIDER = 'SNOWFLAKE':

    CREATE OR REPLACE EXTERNAL VOLUME my_ext_vol
      STORAGE_LOCATIONS = ((
        NAME = 'loc_name'
        STORAGE_PROVIDER = 'SNOWFLAKE'
      ));
    
    Copy

    The STORAGE_PROVIDER must be 'SNOWFLAKE'.

    참고

    You can set this as the default external volume at different levels. For more information, see 계정, 데이터베이스 또는 스키마 수준에서 기본 외부 볼륨 설정. With this option, you can omit the EXTERNAL_VOLUME parameter from your CREATE ICEBERG TABLE statement.

  2. Create an Iceberg table:

    CREATE ICEBERG TABLE my_iceberg_table_internal (col1 int)
      CATALOG = SNOWFLAKE
      EXTERNAL_VOLUME = my_ext_vol;
    
    Copy

    경고

    The Iceberg table that you create uses catalog-vended credentials. When you clone an Iceberg table that uses catalog-vended credentials, the cloned table shares the same base location as the source table. The same credentials can be used to access the shared base location, so the cloned table has write access to the source table.

Considerations

Consider the following when you work with Iceberg tables that use Snowflake storage:

  • This feature is currently available only for accounts hosted on Amazon Web Services (AWS) or Azure.

  • During the preview period, you can see information about the storage usage for a table in the STAGE_BYTES column of the STORAGE_USAGE 뷰.