Configure a catalog integration for Iceberg tables¶
This topic provides information to help you create and configure a catalog integration for Iceberg tables. To create an Iceberg table that uses an external Iceberg catalog, or no catalog at all, you must specify a catalog integration.
Note
A catalog integration is required only when you want to create a read-only Iceberg table using an external Iceberg catalog.
You don’t need a catalog integration to create an Iceberg table that uses Snowflake as the Iceberg catalog.
To use Snowflake as your catalog, set the CATALOG
parameter to
SNOWFLAKE
in the CREATE ICEBERG TABLE (Snowflake as the Iceberg catalog) command.
Create a catalog integration¶
You can create and configure a catalog integration to use with one or more Iceberg tables.
For specific instructions, see the following topics:
Set a catalog integration at the account, database, or schema level¶
To define which existing catalog integration to use for Iceberg tables, you can set the CATALOG parameter at the following levels:
- Account:
Account administrators can use the ALTER ACCOUNT command to set the parameter for the account. If the value is set for the account, all Iceberg tables created in the account that use an external catalog use this catalog integration by default.
- Object:
Users can execute the appropriate CREATE <object> or ALTER <object> command to override the CATALOG parameter value at the database or schema level. The lowest-scoped declaration is used: schema > database > account.
In addition to the minimum privileges required to modify an object using the appropriate ALTER <object_type> command, a role must have the USAGE privilege on the catalog integration.
Example¶
The following statement sets a catalog integration (shared_catalog_integration
) for a database named my_database_1
:
ALTER DATABASE my_database_1
SET CATALOG = 'shared_catalog_integration';
After setting a catalog integration at the database level, you can create an Iceberg table in that database
without specifying a catalog integration. The following statement creates an Iceberg table from metadata in object storage in my_database_1
that uses the default catalog integration (shared_catalog_integration
) set for the database.
CREATE ICEBERG TABLE my_iceberg_table
EXTERNAL_VOLUME='my_external_volume'
METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';