Delta Lake es un framework de almacenamiento desarrollado en el lenguaje de programación Scala. Es una herramienta de código abierto para la arquitectura Lakehouse. Popular por sus integraciones con Spark, Flink, PrestoDB, Hive, entre otros, así como por su capacidad para poder realizar transacciones ACID. Ofrece un manejo escalable de metadata, versionado de snapshots, variaciones de esquema, entre otros, convirtiéndola en una herramienta robusta para la construcción de Data Lakehouses.
En primer lugar, tenemos una arquitectura Data Warehouse, pensada para soportar bloques de data estructurada y en dar soporte a las areas de reporteria y BI, centrándose en la generación de valor para los tomadores de decisiones. Esta arquitectura tiene un costo elevado para manejar data no estructurada o semi-estructurada, así como dificultades para incrementar en volumen y usuarios concurrentes.
En segundo lugar, consideremos una arquitectura Data Lake. Este sistema tiene como base el almacenamiento de data cruda (Estructurada, semi y no estructurada) y se centra en la disponibilización de la información para las áreas de Data Science y Machine Learning. Si bien cubre deficiencias de un Data Warehouse, no refuerzan la calidad de la data, consistencia, aislamiento y presenta dificultades para realizar mezclas de jobs en batch y streaming.
Una alternativa para cubrir los gaps de las dos previas arquitecturas mencionadas es implementar ambos sistemas, con la finalidad de habilitar tanto al equipo de reporteria y BI como a los data scientists y machine learning engineers. Esta alternativa resulta en duplicidad de información y costos elevados de infraestructura. En este contexto, se presenta la arquitectura Lakehouse, como una alternativa que combina la flexibilidad y escalabilidad de los data lakes con la transaccionabilidad de los data warehouses.
La arquitectura lakehouse implementa las funcionalidades de estructuración de datos y de gestión de la información sobre la capa de bajo costo empleada en data lakes. Los diferentes equipos de data science, machine learning, BI y reportería tendrán acceso directo a la versión mas reciente de la información, como se muestra en la imagen.
Las funcionalidades clave que conforman la arquitectura lakehouse son:
La arquitectura lakehouse previamente revisada se construye sobre Delta Lake, un framework o herramienta de trabajo construida sobre Apache Spark. Delta Lake emplea archivos Parquet para almacenar la data, as como logs de las transacciones y commits realizados a la misma.
El Delta Lake tiene 3 ambientes de manejo de data:
Las funcionalidades principales de Delta Lake son las siguientes:
DESCRIBE HISTORY
Empleando las plataformas cloud más populares (AWS, Azure, GCP), el proceso de implementación de un Delta Lake sigue los siguientes pasos:
Para más información, revisar el starter guide de delta:
Las principales fortalezas de la arquitectura lakehouse sobre Delta Lakes se encuentran en las transacciones ACID, la posibilidad de versionado (Time Travel), el manejo de metadata y la unificación batch-streaming, todo montado sobre un formato de código abierto y compatible al 100% con Apache Spark.
Dado que Delta Lake cubre un caso de uso donde disponibilización y transaccionalidad de la data es prioridad, la volumetría, aplicación y tipos de datos resultan relevantes al momento de considerar un warehouse, lake o lakehouse.
En casos donde se necesite una arquitectura doble (warehouse + lake) se debe considerar un lakehouse para evitar incurrir en duplicidad de data o costos adicionales.
Se recomienda revisar Snowflake, Splunk y Athena como alternativas a Delta Lake.
En el 2020, la compania de ropa deportiva, Columbia ofreció una charla en el AI Summit. Como parte de los desarrollos en data, Columbia requirió incrementar su capacidad para ser una empresa data driven, consolidar y entregar información corporativa y, finalmente, consolidar y crecer con un gobierno de datos sólido, alineado a sus procesos y productos.
Partieron de un Data Warehouse tradicional que consolidaba diferentes fuentes de información de sistemas legados, billing systems, CRMs y archivos planos, con los que el Warehouse conectaba herramientas de visualización.
Empleando Delta Lake, re-plantearon su arquitectura de datos, considerando los pipelines existentes, necesidades de acceso de negocio y seguridad. El resultado fue una plataforma unificada de datos sobre delta lake, con procesos de stream y batch, capas de conexión para analitica avanzada, visualizaciones y uso de servicios cloud.
Los resultados más representativos fueron los siguientes:
Para más información, consultar: