Avanzado 2 min de lectura

Catalog Integrations: Glue, Unity y Polaris

Conecta Snowflake a catálogos de metadatos externos para leer tablas Iceberg creadas por Spark, Flink u otros motores: AWS Glue, Databricks Unity Catalog y Apache Polaris.

¿Qué es un Catalog Integration?

Un Catalog Integration conecta Snowflake con un catálogo externo de metadatos Iceberg. Permite que Snowflake descubra y lea tablas Iceberg que otros motores han creado, sin necesidad de registrarlas manualmente.

AWS Glue Data Catalog

El catálogo más común en ecosistemas AWS:

-- Crear la integración con Glue
CREATE CATALOG INTEGRATION integracion_glue
  CATALOG_SOURCE = GLUE
  CATALOG_NAMESPACE = 'mi_base_datos_glue'
  TABLE_FORMAT = ICEBERG
  GLUE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/SnowflakeGlueRole'
  GLUE_CATALOG_ID = '123456789012'
  GLUE_REGION = 'us-east-1'
  ENABLED = TRUE;

-- Ver las tablas disponibles en Glue
SELECT SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG('integracion_glue');

-- Crear tabla Snowflake que apunta a la tabla Iceberg en Glue
CREATE ICEBERG TABLE ventas_desde_spark
  EXTERNAL_VOLUME = 'vol_s3_iceberg'
  CATALOG = 'integracion_glue'
  CATALOG_TABLE_NAME = 'ventas_spark';  -- nombre en Glue

-- Consultar (Snowflake lee directo de S3, sin copiar)
SELECT region, SUM(monto) FROM ventas_desde_spark GROUP BY 1;

Databricks Unity Catalog

Para empresas con ecosistemas Databricks:

CREATE CATALOG INTEGRATION integracion_unity
  CATALOG_SOURCE = OBJECT_STORE
  CATALOG_NAMESPACE = 'mi_catalog.mi_schema'
  TABLE_FORMAT = ICEBERG
  -- Unity Catalog expone un REST API compatible con Iceberg
  CATALOG_ENDPOINT_URL = 'https://mi-workspace.azuredatabricks.net/api/2.1/unity-catalog/iceberg'
  ENABLED = TRUE;

Apache Polaris (Open Source)

Polaris es el catálogo Iceberg REST open source de Snowflake:

-- Conectar a un servidor Polaris
CREATE CATALOG INTEGRATION integracion_polaris
  CATALOG_SOURCE = POLARIS
  CATALOG_NAMESPACE = 'mi_namespace'
  REST_CONFIG = (
    CATALOG_URI = 'https://mi-polaris.example.com/api/catalog'
    WAREHOUSE = 'mi_warehouse'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = 'mi_client_id'
    OAUTH_CLIENT_SECRET = 'mi_secret'
    OAUTH_ALLOWED_SCOPES = ('PRINCIPAL_ROLE:ALL')
  )
  ENABLED = TRUE;

Auto-discover: Linked Catalog Database

La función más poderosa — crear una base de datos que sincroniza automáticamente con el catálogo externo:

-- Crear una "linked catalog database" que espeja el catálogo de Glue
CREATE DATABASE mi_glue_db
  FROM CATALOG INTEGRATION integracion_glue
  AUTO_REFRESH = TRUE;

-- Ahora TODAS las tablas Iceberg de Glue aparecen como tablas Snowflake
SHOW TABLES IN DATABASE mi_glue_db;

-- Consultar directamente
SELECT * FROM mi_glue_db.schema_nombre.tabla_iceberg LIMIT 100;

Con AUTO_REFRESH = TRUE, Snowflake detecta nuevas tablas o cambios de esquema en el catálogo externo automáticamente.

Si usas…Catálogo recomendado
AWS + S3 + Spark/GlueAWS Glue
Azure + ADLS + DatabricksUnity Catalog
Multi-cloud o puro open sourceApache Polaris
Solo SnowflakeCatálogo interno de Snowflake

Próximos pasos

La última lección cubre casos de uso de Iceberg en arquitecturas multi-cloud con Snowpark.

#iceberg #catalog-integration #aws-glue #unity-catalog #polaris