Catalog Integration in depth

Catalog Integration is the Snowflake object that points at an external metastore. CATALOG_SOURCE = GLUE means "read schemas from AWS Glue Data Catalog". CATALOG_NAMESPACE scopes which Glue database Snowflake can see. ENABLED = TRUE turns on the connection.

snowflake/creating_resources_in_snowflake.sql
sql
CREATE OR REPLACE CATALOG INTEGRATION glueCatalog_WarehouseWeatherData
  CATALOG_SOURCE = GLUE
  CATALOG_NAMESPACE = 'warehouse_weather_data'
  TABLE_FORMAT = ICEBERG
  GLUE_AWS_ROLE_ARN = 'arn:aws:iam::xxxxxxxxxxxx:role/snowflake_service_role'
  GLUE_CATALOG_ID = 'xxxxxxxxxxxx'
  GLUE_REGION = 'us-east-1'
  ENABLED = TRUE
  REFRESH_INTERVAL_SECONDS = 600;

The full Catalog Integration DDL. The role ARN here must trust Snowflake; the trust policy follows shortly. REFRESH_INTERVAL_SECONDS controls how often Snowflake re-reads the Glue catalog.

Refresh interval is a freshness-versus-cost tradeoff. 600 seconds (10 minutes) is the practical floor for most workloads. Too short and Snowflake hammers the Glue catalog. Too long and dashboards lag the writer.

No. CATALOG_NAMESPACE is one Glue database. Multiple databases mean multiple Catalog Integration objects in Snowflake. That is intentional: scoping the namespace narrows the IAM permissions you have to grant Snowflake.

Quiz: Quiz

Loading practice…