Apache Iceberg¶
Apache Iceberg es un formato de tabla abierto para grandes conjuntos de datos analíticos. Diseñado por Netflix y ahora un proyecto top-level de Apache Software Foundation, Iceberg lleva a los data lakes características que solo existían en data warehouses:
- ACID transactions
- Time travel y rollback
- Schema evolution sin reescribir datos
- Hidden partitioning (cambias el partitioning sin afectar queries existentes)
- Multi-engine support (Spark, Trino, Flink, Snowflake, BigQuery, Databricks, Dremio)
Por qué ganó la "open table format war"¶
En 2024, Databricks adquirió Tabular (los creadores de Iceberg) por ~$2B. Snowflake liberó Polaris, un catálogo Iceberg REST, como proyecto Apache. AWS, GCP y Azure añadieron soporte nativo. Iceberg v3 (primavera 2025) introdujo Deletion Vectors, Row Lineage y el tipo VARIANT, alineándose con capacidades clave de Delta.
Hudi añadió soporte nativo de lectura Iceberg. Delta Lake interopera con Iceberg vía UniForm. Esto consolidó a Iceberg como el estándar de facto.
Arquitectura¶
Iceberg organiza los datos en tres capas de metadata:
- Metadata files (
v*.metadata.json): definen el schema, partitioning, snapshots y propiedades de la tabla. - Manifest lists: apuntan a manifest files y filtros de partición.
- Manifest files: listan los archivos de datos (Parquet/ORC/Avro) con sus particiones y estadísticas.
Cada commit genera un nuevo snapshot, permitiendo time travel y rollback rápido.