¿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 Apache Parquet con un sólido registro de metadatos. El formato Delta Lake lleva las funciones clave de gestión de datos, tal como las transacciones ACID y el control de versiones de datos, a los data lakes, lo que lo convierte en la base de muchos data lakehouses

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 crea una capa de metadatos sobre los formatos de archivo existentes. Delta Lake utiliza específicamente tablas Parquet para el almacenamiento de datos. Otros formatos de tablas abiertas 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 emplear 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 data lakehouse, que combina el almacenamiento de un data lake con el rendimiento de un almacén de datos.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA

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

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

Delta Lake y los data lakes a menudo se discuten juntos, pero es importante saber que estas tecnologías son distintas entre sí.

Un data lake es un entorno de almacenamiento de datos de bajo costo diseñado para manejar 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 emplear en un data lake u otro almacenamiento de datos.

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

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

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

Los data lakes tienen muchos beneficios, pero normalmente carecen de controles de calidad de 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 y mercados de datos separados antes de que puedan utilizarse.

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

Los usuarios pueden ejecutar consultas de lenguaje de consulta estructurado (SQL), cargas de trabajo de analytics y otras actividades directamente en un data lake, optimizando business intelligence (BI), inteligencia de datos (DI), inteligencia artificial (IA) y machine learning (ML).

Academia de IA

¿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 exitoso 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 en Delta Lake se denominan “tablas Delta Lake” o “tablas Delta” y utilizan el formato de archivo Parquet.

  • 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 nombres de columnas y valores mínimos y máximos) y cambios realizados en los archivos (qué se cambió, cuándo, cómo y quién lo hizo).

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 Parquet normales son inmutables, lo que significa que no pueden modificarse una vez que son creados; sólo pueden reescribirse. El registro de transacciones de Delta Lake hace que los archivos Parquet sean mutables funcionalmente, si no literalmente, 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 volver a escribir todo el archivo. En Delta Lake, el usuario puede eliminar esa columna de manera efectiva 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 de "atomicity, consistency, isolation and durability" (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 están en un estado coherente cuando comienza 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 lake 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 dañar 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 confiables para la transmisión de pipelines de datos, business intelligence, analytics y otros casos de uso. 

Aplicación del esquema y evolución del esquema

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

Los administradores también pueden usar el registro de transacciones para cambiar el esquema de un archivo existente, como agregar nuevas columnas o cambiar los tipos de columnas. Este proceso se llama “evolución del esquema”.

Optimización de consultas

Aunque no es un índice tradicional, el registro de transacciones puede ayudar a las consultas a recuperar datos de forma más rápida y eficaz.

Por ejemplo, supongamos que un usuario está buscando un determinado valor en una columna. Al usar metadatos en el registro de transacciones, la consulta del usuario puede omitir cualquier archivo donde el valor objetivo no tenga posibilidad de 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 archivos. En lugar de escanear todo el data lake, las consultas pueden usar estas rutas de archivo para dirigirse directamente a los archivos relevantes.

Delta Lake puede emplear técnicas como la ordenación en Z para almacenar datos similares más juntos en el disco, lo que facilita saltar archivos irrelevantes y encontrar los relevantes. 

Operaciones de datos

Los archivos Parquet normales 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, incluyendo la adición o eliminación de columnas, la actualización de entradas y la fusión de archivos.

Versiones de datos

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

Conectores

Delta Lake tiene un sólido ecosistema de conectores. El formato se puede utilizar con varios motores informáticos, como Apache Spark, Apache Hive, Apache Flink o Trino. Delta Lake también tiene interfaces de programación de aplicaciones (APIs) para Python, Java, Scala y otros lenguajes, lo que permite a los desarrolladores gestionar y consultar tablas Delta mediante programación.

Controles de acceso y gobernanza

Si bien Delta Lake no aplica controles de seguridad de forma nativa, puede integrarse con herramientas de seguridad de datos y gobernanza de datos. Estas herramientas pueden usar metadatos del registro de transacciones para auditar la actividad, rastrear cambios y aplicar políticas de control de acceso basado en roles (RBAC).

Soporte para datos por lotes y streaming

Delta Lake puede aceptar datos tanto de transmisión como por lotes, y los datos se pueden enviar desde tablas Delta a servicios conectados como una transmisión o en lotes.

Desarrollos recientes

Delta Lake 4.0, el próximo lanzamiento importante programado para Delta Lake, planea agregar más funciones, tales como:

  • Confirmaciones 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 contra otros formatos de tabla abierta

Delta Lake contra 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 formatos de tablas existentes para respaldar transacciones ACID y otras operaciones en un data lake.

Iceberg puede almacenar datos en archivos Parquet, ORC o Avro, mientras que Delta Lake emplea exclusivamente Parquet. Iceberg también emplea 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 las analytics basadas en SQL en un data lake. 

Delta Lake contra Apache Hudi

Al igual que Delta Lake e Iceberg, Hudi mantiene una capa de metadatos sobre una capa de datos. Hudi puede emplear formatos de archivos Parquet, HFile y ORC, y su capa de metadatos toma la forma de una “línea de tiempo” que registra todo lo que sucede en la capa de datos.

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

El papel de Delta Lake en el data lakehouse

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

Durante mucho tiempo, las organizaciones gestionaban principalmente sus datos en almacenes de datos. Si bien son útiles para analytics y la 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 aprendizaje automático (ML).

El auge de los data lakes a principios de la década de 2010 brindó a las organizaciones una forma de agregar todo tipo de datos de todo tipo de fuentes de datos en un solo lugar.

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 consultarlos directamente.

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

Delta Lake surgió en 2016, agregando 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 de data lakehouses, que combina la flexibilidad de los data lakes con el rendimiento de los almacenes de datos.

Muchas organizaciones crean data lakehouses construyendo una capa de almacenamiento Delta Lake sobre un data lake existente e integrándola con un motor de procesamiento de datos como Spark o Hive.

Los data lakehouses ayudan a soportar la integración de datos y optimizar la arquitectura de datos al eliminar la necesidad de mantener data lakes y almacenes separados, lo que puede conducir 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 tener acceso a los datos que necesitan cuando los necesitan. Las cargas de trabajo de IA y aprendizaje automático (ML) son casos de uso comunes para los data lakehouses impulsados por Delta Lake.

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

Al agregar características, tales como transacciones ACID y aplicación de esquemas, Delta Lake ayuda a garantizar la calidad y confiabilidad de los datos de entrenamiento de maneras que los data lakes estándar no pueden.  

Soluciones relacionadas
IBM watsonx.data

Ponga sus datos a trabajar, dondequiera que residan, con el lakehouse de datos híbrido y abierto para IA y analytics.

Descubra watsonx.data
Soluciones de lago de datos

Resuelva los desafíos de datos actuales con una arquitectura de lakehouse.Conéctese a los datos en minutos, obtenga rápidamente insights confiables y reduzca los costos de su almacén de datos.

Explorar las soluciones de data lake de IBM
Servicios de consultoría en datos y analytics

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

Descubra los servicios de analytics
Dé el siguiente paso

Diseñe una estrategia de datos que elimine los silos de datos, 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