Saltar a contenido

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:

  1. Metadata files (v*.metadata.json): definen el schema, partitioning, snapshots y propiedades de la tabla.
  2. Manifest lists: apuntan a manifest files y filtros de partición.
  3. 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.