viajando en el tiempo con delta lake
Ivan Sanchez

Ivan Sanchez

Data Engineer

Otros Artículos:

Viajando en el Tiempo con Delta Lake

Compartir en linkedin
LinkedIn
Compartir en facebook
Facebook
Compartir en twitter
Twitter
Compartir en whatsapp
WhatsApp

¿A quién no le ha pasado que se ha arrepentido de las decisiones que ha tomado y le habría gustado volver atrás? Lo hecho, hecho está, pero no si trabajamos con Delta Lake. Y es que una de las principales y muy útiles ventajas de utilizar tablas Delta es que podemos utilizar la funcionalidad de viaje en el tiempo o time travel, que permite visualizar una fotografía de los datos de un instante pasado e incluso restaurar esa versión si así lo deseamos.

Primero lo primero, ¿qué es una tabla Delta?

Las tablas Delta son aquellas tablas de datos almacenadas en Delta Lake, una capa de almacenamiento de datos de código abierto diseñada para optimizar la confiabilidad y el rendimiento de un lago de datos. Las tablas que se crean con Databricks se crean por defecto como tablas Delta. Esta forma de guardar datos está pensada para el almacenamiento de grandes volúmenes de datos o big data, y supone una mejora sobre formatos de almacenamiento de datos tradicionales como CSV o parquet.

Ventajas de usar tablas Delta

El uso del marco Delta Lake tiene una serie de ventajas sobre otros formatos, algunas de las cuales son las siguientes:

  • Permite transacciones ACID, proporcionando consistencia y fiabilidad a los datos.
  • Guarda un registro de los estados de las tablas, lo cual permite el versionado y el llamado time travel; esto lo veremos con detalle más adelante.
  • Optimiza el rendimiento y se integra con Apache Spark, y esto lo hace idóneo para trabajar con big data.
  • Permite la implementación de esquemas en las tablas proporcionando integridad a los datos.
  • Es fácilmente escalable y eficiente a nivel de costes.

¿Cómo se almacena una tabla Delta?

Una tabla Delta se almacena como un conjunto formado por una serie de ficheros de datos y un registro de transacciones (delta log o transaction log).

tabla-delta

Los datos de una tabla Delta se almacenan en uno o varios ficheros de datos en formato parquet. A su vez, se crea un registro de transacciones que consiste en un registro ordenado de cada transacción que se realiza sobre la tabla. Este archivo actúa como fuente única de verdad, es decir, cada vez que se consulta la tabla, Spark comprueba este registro para recuperar la versión más reciente de los datos. Cada transacción confirmada se guarda en un fichero JSON, el cual contendrá la acción realizada (por ejemplo, una inserción o una actualización sobre la tabla) junto con los predicados como condiciones y filtros, así como los ficheros de datos a los que afectan.

Viajes en el tiempo con Delta Lake

Y ahora sí, ¿qué es la funcionalidad time travel de Delta Lake? Como hemos comentado en la sección anterior, cada operación sobre una tabla Delta se guarda automáticamente, lo que proporciona un histórico completo de todos los cambios que se han producido sobre la tabla. Esto permite recuperar cualquier estado anterior de la tabla si algo ha ido mal o no se ha hecho correctamente, o simplemente si queremos consultar cómo era la tabla en un momento dado. Y creedme que, trabajando como ingeniero de datos desarrollando y manteniendo pipelines de ETL, puedo garantizar que poder revertir el estado de una tabla puede ahorrar más de un disgusto cuando las cosas no han salido como debían.

Para aprovechar esta funcionalidad time travel tenemos una serie de comandos que nos van a resultar muy útiles.

  • El comando DESCRIBE HISTORY permite consultar el historial de la tabla en SQL.
				
					DESCRIBE HISTORY table_name
				
			
  • Podemos también realizar consultas sobre versiones pasadas de la tabla. Esto se puede realizar de dos formas distintas: indicando el punto temporal que queremos recuperar mediante TIMESTAMP AS OF o bien indicando el número de versión de la tabla mediante VERSION AS OF o @v.
				
					SELECT * FROM table_name TIMESTAMP AS OF ‘2025-05-01’
SELECT * FROM table_name VERSION AS OF 27
SELECT * FROM table_name@v27

				
			
  • Si quisiéramos revertir el estado de una tabla a una versión más antigua, por ejemplo, porque accidentalmente se han borrado o modificado registros, podemos utilizar el comando RESTORE TABLE indicando o bien el punto temporal que queremos recuperar o bien el número de versión. Esto haría que la tabla volviera al estado que indiquemos, aunque no se perderían los datos actuales porque se crearía una nueva versión aún más actual que contendría el resultado del RESTORE.
				
					RESTORE TABLE table_name TO TIMESTAMP AS OF ‘2025-05-01’
RESTORE TABLE table_name TO VERSION AS OF 27

				
			
  • Por último, podemos usar el comando VACUUM para eliminar todos los ficheros de datos de una tabla Delta anteriores al período de retención que indiquemos en el comando. Por defecto, el período de retención mínimo es de 7 días, por lo cual el comando VACUUM impedirá borrar archivos con menos de 7 días de antigüedad. A pesar de que esta opción es útil para liberar espacio y eliminar dato que ya no es relevante, es importante tener en cuenta que tras ejecutarlo sobre una tabla se perderá la capacidad de time travel y de volver a versiones de la tabla anteriores al período de retención indicado, ya que los archivos de datos dejarán de existir.
				
					VACUUM table_name RETAIN 240 HOURS
				
			

En definitiva, Delta Lake no solo mejora la eficiencia y la fiabilidad del tratamiento de datos, sino que también nos da una tranquilidad impagable: la posibilidad de deshacer errores y recuperar versiones anteriores de nuestras tablas. En un entorno donde los datos cambian constantemente y los fallos pueden tener un alto coste, contar con herramientas como el time travel marca la diferencia. Porque, al final, tener una segunda oportunidad nunca viene mal —y Delta Lake nos la da.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

MicroStrategy ofrece varias herramientas de administración en MicroStrategy para facilitar la gestión, automatización y validación de los proyectos. Entre ellas, Command Manager, Integrity Manager y Object Manager son herramientas clave. A continuación, se explica para qué sirve cada una, cómo funcionan y cuáles son sus diferencias.

Business Data Master Logo

No te pierdas el

WEBINAR
Gratuito

Explicaremos en detalle los contenidos y objetivos del Business Data Master

29/11/2021

18:30 (GTM+1)

Online

BUSINESS DATA MASTER

* Tu información será utilizada exclusivamente para contactarte en relación al Business Data Master. No hacemos spam ni compartimos datos con terceros.

Best Data Solutions - Logo
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando utilizas nuestra web para personalizar el idioma o ayudar a nuestro equipo a comprender qué secciones de la web son más visitadas.