Iceberg Catalog Federation
- Miguel Diaz
- 28 feb, 2026
- 06 Mins de lectura
- Databricks
En entornos empresariales complejos, los datos raramente viven en un único sistema. Las organizaciones modernas tienen información distribuida entre Databricks, Snowflake, AWS Glue y otros catálogos especializados. Tradicionalmente, para crear análisis que combinen estas fuentes, los equipos han tenido que duplicar datos entre sistemas (costoso y propenso a inconsistencias) o crear complejos pipelines ETL para sincronizar información (lento y difícil de mantener).
La federación de catálogos de Apache Iceberg resuelve este problema permitiendo consultar tablas distribuidas entre múltiples catálogos como si fueran un sistema unificado, sin necesidad de copiar o mover los datos. Esta capacidad elimina la duplicación innecesaria de información y habilita análisis verdaderamente integrados accediendo directamente a los datos donde están almacenados.
¿Qué es la Federación de Catálogos Iceberg?
La federación de catálogos en Apache Iceberg permite que múltiples catálogos conteniendo tablas Iceberg trabajen de manera coordinada a través del REST Catalog Protocol. Este protocolo estándar actúa como una API común que permite a motores como Spark, Trino o Flink acceder a tablas Iceberg almacenadas en diferentes catálogos (AWS Glue, Databricks Unity Catalog, Snowflake, Nessie) como si fueran un único sistema.
La clave está en que Iceberg utiliza un formato de metadatos estandarizado y el protocolo REST para coordinar operaciones entre catálogos. Esto significa que una consulta puede acceder simultáneamente a tablas Iceberg en Databricks y Snowflake, aprovechando las capacidades nativas de cada sistema mientras mantiene la consistencia transaccional y la evolución de esquemas que caracterizan a Iceberg.
¿Cómo Funciona Iceberg Catalog Federation?
La federación de catálogos Iceberg opera mediante un flujo inteligente que optimiza el acceso a datos distribuidos:
🔍 Descubrimiento Inteligente
Unity Catalog detecta automáticamente que la tabla consultada reside en un catálogo federado externo (como Snowflake) durante la planificación de la query.
📋 Negociación de Metadatos
Databricks consulta al sistema externo para verificar que es una tabla Iceberg y obtener la ubicación del metadata.json y los archivos de datos.
⚡ Acceso Directo Optimizado
En lugar de enviar la consulta completa al sistema externo, Databricks lee directamente desde el storage (S3, Azure, GCS) usando compute local.
🔄 Respaldo Automático
Si la tabla no cumple criterios para acceso directo, el sistema automáticamente recurre a federación tradicional vía JDBC como respaldo.
Esta aproximación híbrida combina la flexibilidad de acceder a múltiples catálogos con la eficiencia de leer directamente desde el almacenamiento, evitando costosas transferencias de datos entre sistemas.
Implementación Práctica: Databricks y Snowflake
Para entender completamente la Federación de Catálogos Iceberg, imaginemos una empresa con datos distribuidos en dos catálogos Iceberg independientes que necesitan trabajar juntos.
El Problema a Resolver
Empresa XYZ tiene:
- Databricks (Unity Catalog): Tablas Iceberg con datos transaccionales en tiempo real
- Snowflake (Horizon Catalog): Tablas Iceberg con datos históricos y análisis predictivo
- Necesidad: Consultas que combinen ambos conjuntos de datos sin duplicar información
💡 La Solución: Federación de Catálogos Iceberg
Paso 1: Fundamentos de la Configuración
-- ¿Por qué External Location?
-- Iceberg almacena datos en storage (S3/Azure/GCS) + metadatos en catálogos
-- Para federación, Unity Catalog necesita acceso directo al storage compartido
CREATE EXTERNAL LOCATION snowflake_iceberg_storage
URL 's3://empresa-xyz-iceberg/snowflake-tables/'
WITH (STORAGE CREDENTIAL iceberg_access_credential);
🔍 ¿Qué está pasando aquí?
- Iceberg Catalog Federation requiere que ambos catálogos puedan acceder al mismo almacenamiento de archivos
- Unity Catalog necesita permisos para leer los archivos Parquet donde Snowflake guarda las tablas Iceberg
- Esta no es solo una conexión - es acceso directo al formato Iceberg compartido
Paso 2: Establecer el Canal de Comunicación Between Catalogs
-- Conexión especializada para Iceberg Catalog Federation
CREATE CONNECTION snowflake_iceberg_catalog
TYPE SNOWFLAKE
OPTIONS (
host 'empresa-xyz.snowflakecomputing.com',
port '443',
user 'databricks_user',
warehouse 'ANALYTICS_WH' -- Solo para consultas de metadatos
)
WITH CREDENTIAL oauth_iceberg_federation;
🔍 ¿Qué está pasando aquí?
- Esta conexión NO es para transferir datos - es para coordinar metadatos Iceberg
- Snowflake le dirá a Unity Catalog: “Esta tabla está en formato Iceberg, aquí están sus metadatos”
- REST Catalog Protocol permite que ambos catálogos “hablen el mismo idioma Iceberg”
Paso 3: Crear el Catálogo Federado (¡Aquí ocurre la magia!)
-- Registro oficial del catálogo externo en el ecosistema federado
CREATE FOREIGN CATALOG snowflake_iceberg_federated
USING CONNECTION snowflake_iceberg_catalog
OPTIONS (
database 'ICEBERG_CATALOG',
storage_location 's3://empresa-xyz-iceberg/snowflake-tables/',
authorized_paths 's3://empresa-xyz-iceberg/snowflake-tables/'
);
🔍 ¿Qué está pasando aquí?
- Unity Catalog ahora “conoce” que existe otro catálogo Iceberg federado
snowflake_iceberg_federatedse vuelve un namespace válido en Unity Catalog- Las tablas Iceberg de Snowflake aparecen como si fueran locales en Databricks
Paso 4: La Consulta Federada - Donde se ve el Poder
-- ¡Una consulta, múltiples catálogos Iceberg!
SELECT
-- Datos en tiempo real desde Unity Catalog
txn.transaction_id,
txn.customer_id,
txn.amount,
txn.transaction_timestamp,
-- Datos históricos desde Snowflake Catalog (federado)
hist.customer_ltv,
hist.risk_score,
hist.predicted_churn_probability
FROM main.realtime.transactions txn -- Tabla Iceberg en Unity Catalog
INNER JOIN snowflake_iceberg_federated.analytics.customer_history hist -- Tabla Iceberg en Snowflake
ON txn.customer_id = hist.customer_id
WHERE txn.transaction_timestamp >= CURRENT_TIMESTAMP() - INTERVAL 1 HOUR
AND hist.risk_score < 0.3;
Flujo de Ejecución de Iceberg Catalog Federation
Fase 1: Descubrimiento Inteligente de Catálogos
Unity Catalog analiza: "¿snowflake_iceberg_federated.analytics.customer_history?"
→ Detecta: "Es una tabla Iceberg en catálogo federado"
→ Activa: Protocolo de federación Iceberg
Fase 2: Negociación de Metadatos Iceberg
Unity Catalog → Snowflake: "Dame metadatos de customer_history tabla Iceberg"
Snowflake → Unity Catalog: "Aquí tienes metadata.json ubicación + esquema Iceberg"
Unity Catalog: "Perfecto, es compatible - procedo con acceso directo"
Fase 3: Acceso Directo al Format Iceberg
Unity Catalog lee DIRECTAMENTE:
- metadata.json de la tabla Iceberg de Snowflake
- manifest-list.json para obtener archivos activos
- Archivos Parquet específicos según filtros de la consulta
- Todo usando el formato estándar Iceberg (¡sin conversiones!)
Fase 4: Ejecución Unificada en Databricks
Databricks Compute procesa:
- Tabla local Iceberg: main.realtime.transactions
- Tabla remota Iceberg: customer_history (leída desde S3 de Snowflake)
- JOIN optimizado usando statistics de ambas tablas Iceberg
- Resultado: Una consulta, dos catálogos, formato unificado Iceberg
El Resultado: Catálogos Iceberg Verdaderamente Federados
Lo que acabamos de lograr:
- Cero duplicación de datos: Los datos permanecen en su ubicación original
- Formato unificado: Ambas tablas hablan “Iceberg nativo”
- Performance optimizado: Acceso directo a archivos, no transferencia de datos
- Transparencia total: La federación es invisible para el usuario final
info
Ambos sistemas entienden el formato de metadatos Iceberg estándar, permitiendo coordinación inteligente entre catálogos distribuidos sin perder las ventajas nativas de cada plataforma.
Casos de Uso Destacados
Empresas migran selectivamente workloads de Snowflake a Databricks manteniendo acceso a datos históricos sin duplicación costosa.
Analytics Cross-Platform
Equipos de ciencia de datos acceden a datos distribuidos entre múltiples sistemas usando herramientas unificadas de Databricks.
Diferentes departamentos mantienen catálogos especializados mientras habilitan análisis corporativos integrados.
Conclusión
La Federación de Catálogos Iceberg transforma la gestión de datos distribuidos de manera revolucionaria. Las organizaciones ya no necesitan elegir entre duplicar datos costosamente o mantener silos aislados. Con el formato estándar de metadatos Iceberg como “lenguaje común”, múltiples catálogos especializados trabajan como un sistema unificado, permitiendo modernización gradual, optimización de costos y análisis cross-platform sin ETL complejo. El futuro de los datos empresariales es distribuido, y esta tecnología establece las bases para ecosistemas donde la ubicación física se vuelve transparente.
tip
Para implementar Iceberg Catalog Federation en tu organización, comienza con un caso de uso piloto de bajo riesgo, estableciendo la federación entre dos catálogos con datasets no críticos para validar la configuración y performance antes del rollout completo.