| name | snowflake-create-iceberg-table |
| description | Consult Snowflake CREATE ICEBERG TABLE parameter reference before generating any CREATE ICEBERG TABLE DDL. |
Before writing a CREATE ICEBERG TABLE statement:
- Read
references/parameters.md to review all available parameters and their defaults.
- For each parameter, decide whether the user's request implies a non-default value.
- Include only the parameters that differ from the default or that the user explicitly requested.
- Never use
CREATE OR REPLACE — always use CREATE ICEBERG TABLE IF NOT EXISTS where supported.
- Always specify
EXTERNAL_VOLUME and BASE_LOCATION when Snowflake is the catalog (the most common case); omit them only when integrating an external catalog.
CATALOG = 'SNOWFLAKE' is the default; omit it unless you are referencing an external catalog integration.
STORAGE_SERIALIZATION_POLICY = COMPATIBLE is the default; use OPTIMIZED only when the user explicitly wants Snowflake-optimised encoding and compression and does not need to read the files with other engines.
- Note that
NOT NULL and UNIQUE constraints on PRIMARY KEY columns are represented in Iceberg metadata as identifier fields but are not enforced by Snowflake at DML time.
- Do not add
CLUSTER BY unless the table is expected to be very large or the user requests it.
- Use
PARTITION BY only when the user specifies a partitioning strategy; choose identity, bucket, truncate, or temporal transforms as appropriate.