Currently, Snowflake supports Iceberg tables through External Tables and also Native Iceberg Tables.
:::danger LIMITATION: Iceberg on Snowflake is currently supported in private preview :::
EXTERNAL VOLUME to hold the Iceberg table data and metadata.-- Create an External Volume to hold Parquet and Iceberg data CREATE OR REPLACE EXTERNAL VOLUME my_ext_vol STORAGE_LOCATIONS = ( ( NAME = 'my-s3-us-east-1' STORAGE_PROVIDER = 'S3' STORAGE_BASE_URL = 's3://my-s3-bucket/data/snowflake_extvol/' STORAGE_AWS_ROLE_ARN = '****' ) );
Once done, you can proceed with creating the table using the external volume.
-- Create an Iceberg Table using my External Volume CREATE OR REPLACE ICEBERG TABLE my_iceberg_table WITH EXTERNAL_VOLUME = 'my_ext_vol' AS SELECT id, date, first_name, last_name, address, region, order_number, invoice_amount FROM sales;
Once the table creation succeeds you can start using the Iceberg table as any other table in Snowflake.