Configure a catalog integration for Snowflake Open Catalog

Create a catalog integration for Snowflake Open Catalog, which you can use to query a table in Snowflake Open Catalog using Snowflake or sync a Snowflake-managed table with Open Catalog. For more information, see Use Apache Iceberg™ tables with Snowflake Open Catalog in Snowflake.

A catalog integration for Open Catalog is associated with a specific catalog and service connection in your Open Catalog account.

To create a catalog integration for Open Catalog, use the CREATE CATALOG INTEGRATION command.

CREATE OR REPLACE CATALOG INTEGRATION my_open_catalog_int
  CATALOG_SOURCE = POLARIS
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE = 'myOpenCatalogCatalogNamespace'
  REST_CONFIG = (
    CATALOG_URI = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/polaris/api/catalog'
    CATALOG_NAME = 'myOpenCatalogExternalCatalogName'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = 'myClientId'
    OAUTH_CLIENT_SECRET = 'myClientSecret'
    OAUTH_ALLOWED_SCOPES = ('PRINCIPAL_ROLE:ALL')
  )
  ENABLED = TRUE;
Copy
  • If you’re syncing a Snowflake-managed table with Open Catalog, don’t specify the CATALOG_NAMESPACE parameter. This parameter is not required and doesn’t affect how you sync the table with Open Catalog. Snowflake syncs the table to the external catalog in Open Catalog that you specify in the catalog integration, along with its parent namespace from Snowflake. For example, if you have a db1.public.table1 Iceberg table registered in Snowflake and you specify catalog1 in the catalog integration, Snowflake syncs the table with Open Catalog with the following fully qualified name: catalog1.db1.public.table1.

Note

To check your authentication configuration, see Check a configuration for OAuth.