Intermedio 2 min de lectura

¿Qué es Apache Iceberg y Por Qué Importa?

Entiende el formato de tabla abierta Apache Iceberg, por qué se está convirtiendo en el estándar del data lake, y el posicionamiento estratégico de Snowflake en este ecosistema.

El problema de los datos en silos

Durante años, el mundo de los datos vivió fragmentado:

  • Los datos en data warehouses (Snowflake, Redshift, BigQuery) eran rápidos pero costosos y cerrados
  • Los datos en data lakes (S3, ADLS, GCS) eran baratos pero sin estructura ni transaccionalidad

Apache Iceberg resuelve esto: es un formato de tabla abierto que lleva las capacidades de un data warehouse (ACID, schema evolution, time travel) a los archivos en un data lake.

¿Qué es Apache Iceberg?

Iceberg es una especificación abierta para organizar archivos Parquet (u ORC/Avro) en S3/ADLS/GCS de forma que múltiples motores puedan leerlos y escribirlos.

S3/ADLS/GCS
└── mi-tabla-iceberg/
    ├── metadata/
    │   ├── v1.metadata.json      ← esquema, historial
    │   ├── v2.metadata.json
    │   └── snap-123.avro         ← snapshots (time travel)
    └── data/
        ├── part-00001.parquet
        └── part-00002.parquet

Las capacidades de Iceberg

CapacidadSin IcebergCon Iceberg
ACID transactionsNo✅
Time TravelNo✅ (historial de snapshots)
Schema evolutionComplejo✅ (add/rename/drop columns)
Partition evolutionRe-escribir tabla✅ (cambiar sin mover datos)
Row-level deletesNo✅ (MERGE, UPDATE, DELETE)
Multi-engine accessReinventar la rueda✅ (Snowflake, Spark, Flink, Trino…)

El posicionamiento de Snowflake con Iceberg

Snowflake tiene una postura clara: Iceberg es el futuro. Snowflake puede ser:

  1. Writer: Snowflake crea y escribe tablas Iceberg directamente en tu S3/ADLS/GCS
  2. Reader: Snowflake lee tablas Iceberg creadas por Spark, Flink u otros motores
  3. Catalog: Snowflake actúa como catálogo Iceberg REST para otros motores

Esto elimina el dilema de “¿datos en Snowflake o en el lake?” — puedes tener ambos, con Snowflake como motor de procesamiento.

¿Cuándo usar Iceberg?

Usa Iceberg cuando:

  • Necesitas que múltiples motores accedan a los mismos datos (Snowflake + Spark + Flink)
  • Quieres controlar el costo de almacenamiento usando tu propio S3/ADLS
  • Necesitas cumplir con regulaciones de residencia de datos
  • Tienes datos en un data lake que quieres consultar con Snowflake sin copiarlos

Sigue con tablas nativas Snowflake cuando:

  • Solo usas Snowflake como motor
  • Priorizas máxima performance de queries
  • No necesitas acceso multi-motor

El mensaje estratégico

Snowflake + Iceberg permite a las empresas adoptar una arquitectura de datos abierta sin sacrificar las capacidades de Snowflake. Los datos son tuyos, en tu almacenamiento, en un formato que cualquier motor puede leer.

Próximos pasos

En la siguiente lección aprenderemos a crear tablas Iceberg en Snowflake.

#iceberg #open-table-format #data-lake #interoperabilidad