¿Qué es Delta Lake?

Fotografía aérea de una presa en un lago

Autores

Matthew Kosinski

Staff Editor

IBM Think

¿Qué es Delta Lake?

Delta Lake es un formato de almacenamiento de datos de código abierto que combina archivos de datos de Apache Parquet con un registro de metadatos robusto. El formato Delta Lake aporta funciones clave de gestión de datos, como las transacciones ACID y el control de versiones de datos, a los data lakes, lo que lo convierte en la base de muchos lakehouses de datos

Desarrollado por primera vez por Databricks en 2016, Delta Lake es un formato de tabla abierta, un marco de código abierto para datos tabulares que construye una capa de metadatos sobre los formatos de archivo existentes. Delta Lake utiliza específicamente tablas de Parquet para el almacenamiento de datos. Otros formatos de tabla abierta incluyen Apache Iceberg y Apache Hudi.

La capa de metadatos permite que Delta Lake y otras tablas abiertas optimicen las consultas de búsqueda y admitan operaciones de datos avanzadas que muchos formatos de tabla estándar no pueden realizar. Las organizaciones suelen utilizar Delta Lake para que sus data lakes sean más fiables e intuitivos.

La creación de Delta Lake fue un paso crítico en el desarrollo de la arquitectura de lakehouse de datos, que combina el almacenamiento de un data lake con el rendimiento de un almacén de datos.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

¿Cuál es la diferencia entre Delta Lake y un data lake? 

A menudo se habla de Delta Lake y de los data lakes a la vez, pero es importante saber que estas tecnologías son distintas entre sí.

Un data lake es un entorno de almacenamiento de datos de bajo coste diseñado para gestionar conjuntos de datos masivos de cualquier tipo y formato. La mayoría de los data lakes utilizan plataformas de almacenamiento de objetos en la nube como Amazon Simple Storage Service (S3), Microsoft Azure Blob Storage o IBM Cloud Object Storage.

Delta Lake es un formato de almacenamiento de datos tabulares que una organización puede utilizar en un lago de datos u otro almacén de datos.

Delta Lake no es un tipo de data lake, ni tampoco es una alternativa a un data lake. Más bien, se puede pensar en un data lake como el “dónde” y en Delta Lake como el “cómo”:

  • ¿Dónde se almacenan los datos? En un data lake.
  • ¿Cómo se almacenan los datos? Como una tabla Delta Lake.

El formato Delta Lake puede ayudar a que los data lakes sean más gestionables y eficientes.

Los data lakes tienen muchos beneficios, pero normalmente carecen de controles de calidad de los datos integrados, y consultar directamente los data lakes puede ser difícil. Las organizaciones a menudo deben tomar datos de un lago, limpiarlos y cargarlos en almacenes de datos separados y en almacén de datos (data mart) antes de poder utilizarlos.

Al introducir una capa de metadatos, Delta Lake ofrece a las organizaciones una forma de aplicar esquemas, realizar un seguimiento y revertir los cambios y admitir transacciones ACID.

Los usuarios pueden ejecutar consultas en lenguaje de consulta estructurado (SQL), cargas de trabajo de análisis y otras actividades directamente en un data lake, lo que agiliza la inteligencia empresarial (BI), la inteligencia de datos (DI), la inteligencia artificial (IA) y el machine learning (ML).

AI Academy

¿Es la gestión de datos el secreto de la IA generativa?

Explore por qué los datos de alta calidad son esenciales para el uso satisfactorio de la IA generativa.

Cómo funciona Delta Lake

Delta Lake tiene dos componentes principales: los archivos de datos que contienen datos y el registro de transacciones que alberga metadatos sobre esos archivos de datos.

  • Los archivos de datos de Delta Lake se denominan "tablas Delta Lake" o "tablas Delta" y utilizan el formato de archivo Parquet en columnas.

  • El registro de transacciones almacena la actividad reciente en archivos de registro JSON y archiva metadatos más antiguos en archivos Parquet. El registro se almacena en el data lake junto con los archivos de datos.

El registro de transacciones registra información sobre los archivos de datos (como los nombres de las columnas y los valores mínimos y máximos) y los cambios realizados en los archivos (qué se cambió, cuándo, cómo y por quién).

El registro es lo que diferencia a Delta Lake de un archivo Parquet estándar. El registro de transacciones actúa esencialmente como una capa de gestión y un conjunto de instrucciones para toda la actividad en el data lake, habilitando características como transacciones ACID, viajes en el tiempo y evolución de esquemas.

Los archivos de Parquet normales son inmutables, lo que significa que no se pueden cambiar una vez creados; sólo pueden reescribirse. El registro de transacciones de Delta Lake hace que los archivos de Parquet sean funcionales, si no literalmente, mutables al separar las acciones físicas (acciones realizadas directamente sobre los datos) de las acciones lógicas (acciones realizadas sobre los metadatos).

Por ejemplo, un usuario no puede eliminar una sola columna de una tabla Parquet sin reescribir todo el archivo. En Delta Lake, el usuario puede quitar esa columna de forma eficaz cambiando los metadatos de la tabla para marcar esa columna como eliminada. La columna permanece en el archivo, pero todas las consultas, actualizaciones y escrituras posteriores ven los metadatos y tratan la columna como inexistente.  

Características clave de Delta Lake

Transacciones ACID

"ACID" son las siglas en inglés de “atomicidad, coherencia, aislamiento y durabilidad", propiedades clave de una transacción de datos fiable.

  • Atomicidad significa que todos los cambios en los datos se realizan como si fueran una sola operación.

  • Coherencia significa que los datos se encuentran en un estado coherente cuando se inicia una transacción y cuando finaliza.

  • Aislamiento significa que el estado intermedio de una transacción es invisible para otras transacciones.

  • Durabilidad significa que los cambios realizados en los datos persisten y no se deshacen.

Los data lakes estándar no pueden admitir transacciones ACID. Sin las garantías de ACID, los data lakes son susceptibles a transacciones fallidas, escrituras parciales y otros problemas que pueden corromper los datos. 

El registro de transacciones de Delta Lake puede registrar la información de las transacciones de acuerdo con los principios ACID, lo que hace que los data lakes sean más fiables para las canalizaciones de flujo de datos, la inteligencia empresarial, el análisis y otros casos de uso. 

Aplicación de esquemas y evolución de esquemas

Los administradores pueden establecer requisitos de esquema en el registro de transacciones, y estos requisitos se aplican a todos los datos en el momento de la ingestión. Se rechazan los datos que no cumplen los requisitos del esquema.

Los administradores también pueden utilizar el registro de transacciones para cambiar el esquema de un archivo existente, como añadir nuevas columnas o cambiar los tipos de columnas. Este proceso se denomina "evolución del esquema".

Optimización de consultas

Aunque no es un índice tradicional, el registro de transacciones puede ayudar a que las consultas recuperen datos de manera más rápida y eficiente.

Por ejemplo, supongamos que un usuario está buscando un determinado valor en una columna. Al utilizar los metadatos del registro de transacciones, la consulta del usuario puede omitir cualquier archivo en el que el valor objetivo no pueda existir. Si el valor mínimo es mayor o el valor máximo es menor que el valor objetivo, la consulta puede omitir el archivo.

El registro de transacciones también almacena rutas de acceso de archivos. En lugar de examinar todo el data lake, las consultas pueden usar estas rutas de archivo para dirigirse directamente a los archivos relevantes.

Delta Lake puede utilizar técnicas como el ordenamiento en Z para almacenar datos similares más juntos en el disco, lo que facilita omitir archivos irrelevantes y encontrar los relevantes. 

Operaciones de datos

Los archivos normales de Parquet son inmutables, pero los usuarios pueden manipular las tablas Delta a través de la capa de metadatos. Delta Lake admite todo tipo de operaciones de datos, incluida la adición o eliminación de columnas, la actualización de entradas y la fusión de archivos.

Control de versiones de datos

Dado que el registro de transacciones registra todo lo que sucede en las tablas Delta, mantiene eficazmente los historiales de versiones de cada tabla. Los usuarios pueden consultar versiones anteriores e incluso viajar en el tiempo, es decir, revertir cambios para restaurar versiones anteriores de la tabla.

Conectores

Delta Lake tiene un sólido ecosistema de conectores. El formato puede utilizarse con varios motores de cálculo, como Apache Spark, Apache Hive, Apache Flink o Trino. Delta Lake también dispone de interfaces de programación de aplicaciones (API) para Python, Java, Scala y otros lenguajes, que permiten a los desarrolladores gestionar y consultar las tablas Delta mediante programación.

Controles de acceso y gobierno

Aunque Delta Lake no aplica los controles de seguridad de forma nativa, puede integrarse con las herramientas de seguridad de datos y gobierno de datos. Estas herramientas pueden utilizar los metadatos del registro de transacciones para auditar la actividad, hacer un seguimiento de los cambios y aplicar las políticas de control de acceso basadas en funciones (RBAC).

Compatibilidad con datos por lotes y en flujo continuo

Delta Lake puede aceptar tanto datos en flujo como en lotes, y los datos pueden enviarse desde las tablas Delta a los servicios conectados como flujo o en lotes.

Desarrollos recientes

Delta Lake 4.0, la próxima versión importante programada para Delta Lake, planea agregar más características, como:

  • Comisiones coordinadas para agilizar el proceso de escritura en varias tablas y desde varios motores a la vez.

  • Un nuevo tipo de datos, "variante", para almacenar datos semiestructurados, que tradicionalmente son difíciles de almacenar en formato de tabla.

  • Ampliación de tipos, que permite a los usuarios cambiar el tipo de datos de una columna. 

Delta Lake frente a otros formatos de tabla abierta

Delta Lake vs. Apache Iceberg

Apache Iceberg es un formato de código abierto de alto rendimiento para tablas analíticas masivas. Al igual que Delta Lake, Iceberg crea una capa de metadatos sobre los formatos de tabla existentes para admitir transacciones ACID y otras operaciones en un data lake.

Iceberg puede almacenar datos en archivos Parquet, ORC o Avro, mientras que Delta Lake utiliza Parquet exclusivamente. Iceberg también utiliza una capa de metadatos de tres niveles en lugar de un único registro de transacciones como Delta Lake.

Iceberg se integra de forma nativa con muchos motores de consulta diferentes y es una opción común para analytics basadas en SQL en un data lake. 

Delta Lake vs. Apache Hudi

Al igual que Delta Lake e Iceberg, Hudi mantiene una capa de metadatos sobre una capa de datos. Hudi puede utilizar formatos de archivo Parquet, HFile y ORC, y su capa de metadatos adopta la forma de una "línea de tiempo" que registra todo lo que ocurre en la capa de datos.

Hudi está diseñado para el proceso de datos, en el que se procesan pequeños lotes de datos con frecuencia. Este enfoque en el procesamiento incremental convierte a Hudi en una opción común para el análisis en tiempo real y la captura de datos de cambios (CDC). 

El papel de Delta Lake en el lakehouse de datos

El desarrollo del formato Delta Lake ayudó a allanar el camino para la creación de lakehouses de datos.

Durante mucho tiempo, las organizaciones gestionaron principalmente sus datos en almacenes de datos. Aunque son útiles para análisis y BI, los almacenes requieren esquemas estrictos. No funcionan bien con datos no estructurados o semiestructurados, que se han vuelto más frecuentes e importantes a medida que las organizaciones aumentan sus inversiones en IA y ML.

El auge de los data lakes a principios de la década de 2010 dio a las organizaciones una forma de agregar todo tipo de datos de todo tipo de fuentes de datos en una sola ubicación.

Sin embargo, los data lakes tienen sus propios problemas. A menudo carecen de controles de calidad. No admiten transacciones ACID y no es fácil consultarlas directamente.

Para que los datos fueran utilizables, las organizaciones a menudo necesitaban crear canalizaciones de datos de extracción, transformación y carga (ETL) independientes para mover los datos de un lago a un almacén.  

Delta Lake surgió en 2016, añadiendo transacciones ACID, aplicación de esquemas y viajes en el tiempo a los data lakes, haciéndolos más fiables para consultas directas y analytics.

De código abierto en 2019, Delta Lake desempeñó un papel clave en la configuración de la arquitectura del lakehouse de datos, que combina la flexibilidad de data lakes con el rendimiento de los almacenes de datos.

Muchas organizaciones crean lakehouses de datos mediante la construcción de una capa de almacenamiento Delta Lake sobre un lago de datos existente y su integración con un motor de procesamiento de datos como Spark o Hive.

Los lakehouses de datos ayudan a respaldar la integración de datos y agilizar la arquitectura de datos al eliminar la necesidad de mantener data lakes y almacenes separados, lo que puede dar lugar a silos de datos.

A su vez, estas arquitecturas optimizadas ayudan a garantizar que los científicos de datos, los ingenieros de datos y otros usuarios puedan acceder a los datos que necesitan cuando los necesitan. Las cargas de trabajo de IA y ML son casos de uso comunes para los lakehouses de datos impulsados por Delta Lake.

Los data lakes, por sí solos, ya son útiles para estas cargas de trabajo porque pueden albergar cantidades masivas de datos estructurados, no estructurados y semiestructurados.

Al añadir características como las transacciones ACID y la aplicación de esquemas, Delta Lake ayuda a garantizar la calidad de los datos y fiabilidad en formas que los data lake estándar no pueden.  

Soluciones relacionadas
IBM watsonx.data

Ponga sus datos a trabajar, residan donde residan, con el lakehouse de datos híbrido y abierto para IA y análisis.

Descubra watsonx.data
Soluciones de lagos de datos

Resuelva los retos que presentan los datos hoy en día con una arquitectura lakehouse. Conéctese a los datos en minutos, obtenga rápidamente información fiable y reduzca los costes de su almacén de datos.

Explore las soluciones de data lake de IBM
Servicios de asesoramiento sobre datos y análisis

Desbloquee el valor de los datos empresariales con IBM Consulting y cree una organización impulsada por conocimientos que ofrezca ventajas empresariales.

Descubra los servicios de análisis
De el siguiente paso

Diseñe una estrategia de datos que elimine los silos, reduzca la complejidad y mejore la calidad de los datos para ofrecer experiencias excepcionales a clientes y empleados.

Explore las soluciones de gestión de datos Descubra watsonx.data