Curaduría de herramientas open source · Python-first · en español

El catálogo

Nº12 · Almacenamiento

Delta Lake

Tablas con garantías ACID y time travel sobre tu data lake.

FormatoIntermedioData Engineer

Delta Lake es un formato de tabla open-source que añade transacciones ACID, evolución de esquema y time travel sobre archivos Parquet en un data lake. Es una de las bases del patrón lakehouse (tablas confiables sobre object storage): lo popularizó Databricks, pero es OSS y corre también fuera de su nube.

¿Qué es?

Delta Lake no inventa un formato de datos nuevo: guarda tus datos en Parquet y añade junto a ellos un transaction log (el directorio _delta_log) que registra cada cambio como un commit ordenado. Ese log es la pieza clave — convierte una carpeta de archivos en una tabla con comportamiento de base de datos:

  • ACID — commits atómicos; ninguna lectura ve un estado a medias.
  • Updates, deletes y merge — modifica filas sobre object storage, no solo append.
  • Schema evolution — agrega o ajusta columnas sin reescribir lo histórico.
  • Time travel — consulta la tabla en una versión o timestamp anterior.

¿Para qué sirve?

  • Tablas confiables sobre object storage. Pipelines que escriben en S3/GCS/ADLS con garantías ACID en lugar de archivos sueltos frágiles.
  • Updates, deletes y merge. Aplica cambios incrementales o upserts (CDC) sobre datos que en Parquet plano serían inmutables.
  • Time travel. Recupera el estado exacto de una tabla en un punto anterior para auditoría, reproducibilidad o rollback.
  • Base de un lakehouse. El cimiento de tablas analíticas confiables que múltiples cargas (ETL, BI, ML) comparten sin duplicar datos.

¿Cuándo usarla / cuándo no?

Úsala cuando:

  • Necesitas ACID, updates/deletes/merge y time travel sobre un data lake.
  • Tu stack vive en el mundo Spark/Databricks, donde Delta es la opción más nativa y madura.

Piénsalo dos veces cuando:

  • El dataset es chico y lo lee un solo proceso — un Parquet plano es más simple y suficiente.
  • Tu ecosistema es multi-motor o más neutral: Iceberg resuelve casi lo mismo (ACID, schema evolution, time travel) y suele integrarse mejor fuera de Spark. La diferencia real entre Delta e Iceberg no son las features sino el ecosistema: elige Delta si gravitas hacia Spark/Databricks, Iceberg si quieres neutralidad multi-motor (Trino, Flink, DuckDB).

Empieza en 1 minuto

Crea y lee una tabla Delta en local con delta-rs (sin clúster Spark), desde pandas:

pip install deltalake pandas
import pandas as pd
from deltalake import write_deltalake, DeltaTable

# Escribe un DataFrame como tabla Delta en una carpeta local
df = pd.DataFrame({
    "id": [1, 2, 3],
    "evento": ["login", "compra", "logout"],
})
write_deltalake("/tmp/delta_eventos", df)

# Léela de vuelta
dt = DeltaTable("/tmp/delta_eventos")
print(dt.to_pandas())

# Agrega más datos (otro commit en el log)
mas = pd.DataFrame({"id": [4], "evento": ["refund"]})
write_deltalake("/tmp/delta_eventos", mas, mode="append")

# Time travel: lee la versión 0 (antes del append)
print(DeltaTable("/tmp/delta_eventos", version=0).to_pandas())

Trivia rápida — pon a prueba lo que acabas de leer.

¿Qué tanto sabes de Delta Lake?

Documentación oficial

La fuente de verdad vive ahí. Acá orientamos; la profundidad la pones tú.

Abrir documentación oficial

Qué aprender después

Ver también

Buzón de KioskoAI

¿Falta algo en la guía de Delta Lake?

Esto define qué se escribe después. Si algo te sirvió a medias, dilo.

Tipo de comentario
0/2000

Sin spam. El correo es opcional y solo se usa para responderte.

Nº12 · Actualizado 2026-06-26