Qué es Delta Lake?

Últimamente se ha vuelto frecuente ver arquitecturas de datos que involucran el uso de Delta Lake, pero ¿Que es Delta Lake? ¿Qué características tiene? De eso vamos a hablar.

Delta Lake es una capa de almacenamiento open-source sobre un Data Lake que permite transacciones ACID usando Apache Spark permitiendo grandes cargas de trabajo.

Recordemos el significado del término ACID, es el acrónimo en inglés de Atomicity, Consistency, Isolation and Durability (Atomicidad, Consistencia, Aislamiento y Durabilidad). Características que garantizan fiabilidad en una transacción de una base de datos y esto se ve reflejado en cada uno de los cuatro términos:

  • Atomicidad: Se refiere a que la transacción se debe hacer por completo o por el contrario no hacerse en caso de que alguno de sus pasos falle, esto garantiza que no se dejen procesos sin terminar.
  • Consistencia: Cualquier cambio o proceso debe llevar de un estado valido a otro igualmente válido, de este modo se garantiza que el proceso es consistente.
  • Aislamiento: Se refiere a que una operación no puede afectar a otra, esto evita que en caso de que varios procesos corran en paralelo, unos afecten a los demás.
  • Durabilidad: Se refiere a que una vez se haga un cambio, este perdure, aunque se presenten fallos en el futuro.

Además de esta importante característica también tiene otras igualmente importantes, como:

  • Time Travel: Esta característica permite guardar snapshots de una tabla Delta que permiten al usuario retroceder a una versión anterior o usar estas versiones para pruebas.
  • Manejo Escalable de Datos: Delta Lake permite trabajar con grandes volúmenes de datos y ser muy eficiente mediante el paralelismo que aporta Spark, procesando petabytes de datos y miles de millones de archivos.
  • Formato Parquet: Los datos son almacenados en el DataLake en formato parquet por lo que aprovecha estas características de compresión y particionamiento que ayuda a ser mas eficiente en almacenamiento, procesamiento y consultas.
  • Aplicación de Esquemas: Esta característica provee la capacidad de asegurarse que se cumplan ciertas características del esquema de datos, como los tipos de datos, columnas requeridas y evitar errores de carga, de este modo garantiza una correcta ingesta de datos.
  • Historial de Auditoria: Delta Lake igualmente proporciona un registro útil para saber los detalles de la historia de una tabla, como cambios en las tablas, trazabilidad de transacciones, usuarios que ejecutaron algún comando sobre la tabla.
  • Upsert: De una forma muy sencilla un Delta table permite hacer inserción (Insert) y actualización (Update) de registros.

Estas son solo algunas de las características que posee Delta Lake, si quieres empezar a usar Delta Lake es sencillo, si estás usando python solo debes cambiar el formato ‘parquet’ por ‘delta'

Anímate a explorar esta gran herramienta!

comments powered by Disqus