Iceberg tables can be created via Diagram explorer (DB explorer) or reverse engineering (RE).
The following options and parameters are available for creating and configuring iceberg tables in Snowflake projects.
Iceberg tables properties
Naming and case-sensitivity
All SqlDBM objects must have a unique physical name (in physical project types), taking the schema into account. The logical name is used for metadata and descriptive purposes. See Snowflake Tables for additional details.
Column definitions
For Iceberg tables with Sowflake and Iceberg REST catalogs, columns are mandatory:
Indexes and constraints
Iceberg tables can have the same indexes and constraints as regular tables.
Physical relationships can only be modeled for Iceberg tables with Snowflake Catalog. For all other Catalogues, Virtual relationships are possible only.
Options
Specific options for Iceberg tables are described in this article. For shared options with tables, see Snowflake Tables.
External volume
Specifies the identifier (name) for the external volume where the Iceberg table stores its metadata files and data in Parquet format.
Catalog
Supported catalogs are Snowflake, Delta files, Iceberg files, Iceberg REST, AWS Glue.
The remaining Iceberg table options depend on the catalog selection.
Snowflake catalogue options
Base location
Specifies the storage location within the external volume where table data files are kept.
Catalog sync
Links the table to an external catalog integration for synchronization. Value should be the name of the catalog integration.
Storage serialization policy
Controls data serialization behavior. Options: COMPATIBLE or OPTIMIZED (default).
For shared table properties, see Snowflake Tables.
Change tracking
Specifies whether to enable change tracking on the table.
Copy grants
Specifies to retain the access privileges from the original table when a new table is created.
See more: https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table-snowflake
AWS Glue catalogue options
Catalog table name
Specifies the table name as recognized by the AWS Glue Data Catalog.
Catalog namespace
Optionally specifies the namespace (for example, my_glue_database) for the AWS Glue Data Catalog source.
Catalog integration name
Specifies the identifier (name) of the catalog integration for this table.
Replace invalid characters
Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character in query results.
Auto Refresh
Specifies whether Snowflake should automatically poll the external Iceberg catalog that is associated with the table for metadata updates.
See more: https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table-aws-glue
Iceberg REST catalog
Catalog table name
Specifies the table name as recognized by the your external catalog.
Catalog namespace
Optionally specifies the namespace (for example, my_database) for the REST Catalog source.
Catalog integration name
Specifies the identifier (name) of the catalog integration for this table.
Copy grants
Specifies to retain the access privileges from the original table when a new table is created.
Replace invalid characters
Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character in query results.
Auto Refresh
Specifies whether Snowflake should automatically poll the external Iceberg catalog that is associated with the table for metadata updates.
See more: https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table-rest
Iceberg files
Metatada file path
Specifies the relative path of the Iceberg metadata file to use for column definitions.
Catalog integration name
Specifies the identifier (name) of the catalog integration for this table.
Replace invalid characters
Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character in query results.
See more: https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table-iceberg-files
Delta files
Base location
Specifies a relative path from the table’s EXTERNAL_VOLUME location to a directory where Snowflake can access your Delta table files.
Catalog integration name
Specifies the identifier (name) of the catalog integration for this table.
Replace invalid characters
Specifies whether to replace invalid UTF-8 characters with the Unicode replacement character in query results.
Auto Refresh
Specifies whether Snowflake should automatically poll the external Iceberg catalog that is associated with the table for metadata updates.
See more: https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table-delta