Delta Lake: qué es, para qué sirve y ejemplo práctico
Delta Lake
¿Qué es?
Delta Lake es un formato abierto de tabla para data lakes desarrollado originalmente por Databricks y donado a la Linux Foundation en 2019. Como Apache Iceberg, no es una base de datos ni un motor de consulta: es una especificación que organiza ficheros Parquet sobre object storage (S3, ADLS, GCS) para que se comporten como tablas con garantías ACID, evolución de esquema y time travel.
Delta nació antes que Iceberg y durante años fue el estándar de facto del lakehouse, especialmente en organizaciones que adoptaron Databricks. Hoy ambos formatos coexisten y compiten, con tendencia creciente a la interoperabilidad.
Para qué sirve
Resuelve los mismos problemas que Iceberg sobre data lakes “planos”:
- Transacciones ACID: lectura y escritura concurrente sin pérdida de consistencia.
- MERGE / upserts eficientes: actualizaciones y borrados a nivel de fila, no rescritura completa del fichero.
- Time travel: consulta del estado de la tabla en un instante anterior.
- Schema evolution: añadir, renombrar y reordenar columnas sin reescribir datos.
- Optimización automática: compactación de small files (OPTIMIZE), z-ordering, vacuum de versiones antiguas.
- Streaming + batch unificados: la misma tabla Delta se puede leer y escribir desde Spark Structured Streaming, Flink o cargas batch.
Cómo funciona
Delta organiza la tabla con dos componentes:
- Data files: Parquet con las filas.
- Transaction log (
_delta_log/): secuencia ordenada de ficheros JSON (y Parquet checkpoints periódicos) que describe cada commit. Cada operación añade un nuevo fichero numerado al log.
El log es la fuente única de verdad. Los motores compatibles leen primero el log, reconstruyen el estado actual de la tabla y luego acceden a los Parquet relevantes. La concurrencia se gestiona por control optimista basado en versiones.
Ejemplo
Una plataforma de analytics guarda eventos en una tabla Delta sobre S3:
-- Crear tabla
CREATE TABLE eventos (
user_id BIGINT,
evento STRING,
timestamp TIMESTAMP,
propiedades MAP<STRING, STRING>
)
USING delta
LOCATION 's3://mi-lake/eventos/';
-- Upsert por user_id (no se podría hacer en Parquet plano)
MERGE INTO eventos t
USING eventos_nuevos s ON t.user_id = s.user_id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
-- Consultar el estado de hace 7 días
SELECT * FROM eventos VERSION AS OF 1100;
SELECT * FROM eventos TIMESTAMP AS OF '2026-05-19 00:00:00';
-- Optimizar layout (z-order por columnas frecuentes en filtros)
OPTIMIZE eventos ZORDER BY (user_id, timestamp);
Delta Lake vs Apache Iceberg
| Delta Lake | Apache Iceberg | |
|---|---|---|
| Origen | Databricks → Linux Foundation | Netflix → Apache Software Foundation |
| Adopción multi-vendor | Creciendo (Snowflake, Microsoft Fabric) | Muy amplia (Snowflake, Databricks, AWS, Google, Oracle) |
| Fortaleza histórica | Performance en Spark, MERGE rápido, z-ordering | Particionado oculto, evolución de esquema, neutralidad multi-engine |
| Catálogo | Unity Catalog (Databricks) | REST Catalog (Polaris, Glue, Nessie, Unity) |
| Streaming nativo | Structured Streaming muy maduro | Vía Flink, menos maduro |
Diferencias prácticas se han ido estrechando con cada versión. Para nuevos proyectos en 2026, la elección depende más del ecosistema (Databricks → Delta natural; cualquier otro → Iceberg gana en compatibilidad multi-engine).
Interoperabilidad: el puente UniForm
Desde 2024, Databricks ofrece Delta UniForm: una tabla escrita como Delta puede ser leída como Iceberg sin duplicar datos, exponiendo metadatos en formato Iceberg adicionales al transaction log Delta. Esto permite a clientes Iceberg (Snowflake, Trino, Athena) leer tablas que viven nativamente en Delta.
La dirección del sector apunta a una convergencia donde el formato físico importa menos que el catálogo abierto que lo expone.
Tecnologías compatibles
- Motores nativos: Spark, Databricks Runtime, Microsoft Fabric.
- Lectura/escritura externa: Trino, Flink, Polars, DuckDB, PrestoDB.
- Catálogos: Unity Catalog (Databricks), AWS Glue, Hive Metastore.
- SDKs: Delta Sharing para compartir tablas sin copia entre organizaciones.
Más información
Contenido elaborado con asistencia de inteligencia artificial — Equipo Editorial Dataprix. Verifica la información antes de tomar decisiones.