Dependiendo de las necesidades de cada empresa, evaluar las diferentes técnicas de almacenamiento de Big Data es fundamental para desarrollar una canalización sólida de almacenamiento de datos. La elección de qué arquitectura de almacenamiento de Big Data elegir dependerá del tipo de datos con los que se esté tratando, la fuente de datos y cómo los stakeholders utilizarán los datos.
Un Data Lake es un almacén para grandes cantidades de datos sin ningún tipo de tratamiento previo, sirve para ejecutar diferentes tipos de análisis, dashboards y visualizaciones, además de generar procesos de Big Data, análisis en tiempo real y de Machine Learning.
Un Data Warehouse es una solución diseñada para contener datos resumidos de muchas aplicaciones y orígenes de datos, organizados por una función empresarial. Con procesos ETL (Extract, Transform and Load) donde los datos son asignados meticulosamente desde los orígenes de datos originales a las tablas de almacenamiento de datos, son transformados para lograr un formato estructurado para la generación de informes y Análisis de BI.
¿Hay alguna forma de combinar data lake y data warehouse?
Un Data Lakehouse, es una nueva estructura/solución para el almacenamiento y análisis de datos que combina las mejores características de Data Warehouse y Data Lakes.
Hoy día las empresas están basadas en sus datos y están adoptando rápidamente el Data Lakehouse como el marco arquitectónico clave para acelerar la innovación y maximizar el valor de los datos a un costo reducido.
Data Lakehouse habilita un repositorio único para todos sus datos (estructurados, semiestructurados y no estructurados) al tiempo que habilita las mejores capacidades de transmisión, inteligencia empresarial y aprendizaje automático de su clase.
Al ser un único punto de acceso para todos los datos dentro de su empresa, (presentados en un Star Schema “estructura de estrella” para Business Analysts como en archivos sin procesar para Data Scientists). Funcionando como un puente entre los departamentos:
- Los analistas de negocios (business analyst): experimentados pueden explorar los resultados estadísticos.
- Los científicos de datos (data scientists): pueden convertir el análisis estadístico en un informe accesible más rápidamente.
Los Data lakehouse suelen comenzar como data lakes que contienen todo tipo de datos. Luego, los datos se convierten al formato Delta Lake (una capa de almacenamiento de código abierto que brinda confiabilidad a los lagos de datos).
Los delta lakes permiten procesos transaccionales ACID desde almacenes de datos tradicionales en lagos de datos.
Transacciones ACID
Una transacción representa un cambio dentro de una base de datos; El acrónimo ‘ACID’ se usa para permitir que una base de datos sea recuperable, para que múltiples programas accedan a la base de datos al mismo tiempo y cubra los estándares requeridos para una base de datos de alto rendimiento que pueda manejar muchas operaciones.
El acrónimo ACID significa lo siguiente:
Atomicity/ Atomicidad: una transacción se considera que se ejecuta por completo o que no se ejecuta en absoluto. Esto evita que una transacción se ejecute parcialmente y dañe los datos dentro de la base de datos.
Consistency/ Consistencia: una transacción sólo realizará cambios en la base de datos de manera predecible, para evitar cambios no deseados dentro de la base de datos.
Isolation/ Aislamiento: en una base de datos, muchos usuarios realizan transacciones al mismo tiempo. Aislamiento significa que el estado final de varias transacciones aplicadas al mismo tiempo equivale a transacciones que se ejecutan una tras otra.
Durabilty/ Durabilidad: los cambios de una transacción completa se confirmarán en la base de datos, incluso en el caso de que el sistema falle.
Beneficios de un Data Lakehouse
Además de combinar la estructura de datos y las características de administración de un Data Warehouse con el almacenamiento y la flexibilidad de bajo costo de un Data Lake.
Algunos de los beneficios de un Data Lakehouse incluyen:
- Reducción de la redundancia de datos: Data Lakehouse reduce la duplicación de datos al proporcionar una única plataforma de almacenamiento de datos multiusos para satisfacer todas las demandas de datos comerciales. Debido a las ventajas del data warehouse y data lake la mayoría de las empresas optan por una solución híbrida. Sin embargo, este enfoque podría dar lugar a la duplicación de datos, lo que puede resultar costoso.
- Rentabilidad: Data lakehouse implementan las funciones de almacenamiento rentables de los date lake mediante el uso de opciones de almacenamiento de objetos de bajo costo. Además, Data Lakehouse eliminan los costos y el tiempo de mantener múltiples sistemas de almacenamiento de datos al brindar una única solución.
- Compatibilidad con una variedad más amplia de cargas de trabajo: Data Lakehouse brindan acceso directo a algunas de las herramientas de inteligencia comercial más utilizadas ( Tableau , PowerBI ) para permitir análisis avanzados. Además, Data Lakehouse usa formatos de datos abiertos (como Parquet) con API y bibliotecas de aprendizaje automático, incluido Python/R, lo que facilita que los científicos de datos y los ingenieros de aprendizaje automático utilicen los datos.
- Facilidad de control de versiones, gobierno y seguridad de los datos: la arquitectura Data Lakehouse hace cumplir el esquema y la integridad de los datos, lo que facilita la implementación de mecanismos sólidos de seguridad y gobierno de datos.
¿Qué problemas puede resolver un Data Lakehouse?
Muchas organizaciones implementan un data warehouse y data lakes con mucho éxito. Sin embargo, ciertos problemas aparecen en ciertos casos.
- Duplicación de datos: si una empresa utiliza varios data warehouses y un data lake, está obligada a crear redundancia de datos, cuando la misma pieza de datos se almacena en dos o más lugares separados. No solo es ineficiente, sino que también puede causar inconsistencia en los datos (cuando los mismos datos se almacenan en diferentes versiones en más de una tabla). Un Data Lakehouse puede ayudar a consolidar todo, eliminar copias adicionales de datos y crear una única versión de la verdad para la empresa.
- Doble enfoque: Los Data scientists usan técnicas de análisis en data lakes para analizar datos no clasificados, mientras que los analistas de BI usan un data warehouse. Un Data Lakehouse ayuda a ambos equipos a trabajar en un repositorio único y compartido. Esto ayuda a reducir los data silos.
- Caducidad de los datos: Según una encuesta de Exasol, el 58% de las empresas toman decisiones basadas en datos desactualizados. data warehouse generalmente hay retos a la hora procesar y actualizar constantemente los datos en tiempo real. Un Data Lakehouse admite una integración confiable y conveniente de transmisión en tiempo real junto con los procesamiento por lotes de datos. Esto asegura que los analistas siempre puedan usar los datos más recientes.
Características de un Data Lakehouse
Un Data Lakehouse tiene como objetivo mejorar la eficiencia mediante la construcción de un data warehouse con tecnología de data lake.
Entre algunas de las características comunes de un Data Lakehouse son:
- Tipos de datos extendidos (Extended data): Data Lakehouse tienen acceso a una gama más amplia de datos que los data warehouse, lo que les permite acceder a registros, audio, video y archivos del sistema.
- Transmisión de datos (Data streaming): Permite a las empresas realizar informes en tiempo real al admitir análisis de transmisión. Especialmente cuando se usa con productos de integración de transmisión de datos como Striim en conjunto.
- Esquemas: A diferencia de los data lakes, Data Lakehouse aplica esquemas a los datos, lo que ayuda en la estandarización de grandes volúmenes de datos.
- Soporte de Business Intelligence y Data Science: Los profesionales de BI y análisis pueden compartir el mismo repositorio de datos. Dado que los datos de un Data Lakehouse pasan por la limpieza y la integración, son útiles para el análisis. Además, puede almacenar datos más actualizados que un data warehouse. Esto mejora la calidad de los procesos de BI.
- Compatibilidad con transacciones: Pueden manejar transacciones simultáneas de escritura y lectura. Por lo tanto, pueden trabajar con varias canalizaciones de datos.
- Apertura: Data Lakehouse admite formatos de almacenamiento abiertos (p. ej., Parquet). De esta forma, los profesionales de datos pueden usar R y Python para acceder a ellos fácilmente.
- Desacoplamiento de procesamiento/almacenamiento: un Data Lakehouse reduce los costos de almacenamiento mediante el uso de clústeres que se ejecutan en hardware económico. Puede ofrecer almacenamiento de datos en un clúster y ejecución de consultas en un clúster separado. Este desacoplamiento de procesamiento y almacenamiento puede ayudar a aprovechar al máximo los recursos.
Capas en Data Lakehouse
Un Data Lakehouse puede tener hasta cinco capas:
1- Capa de ingestión
La primera capa extrae datos de múltiples fuentes de datos y los entrega a la capa de almacenamiento. La capa utiliza diferentes protocolos para vincularse a una variedad de fuentes externas e internas, como aplicaciones de CRM, bases de datos relacionales y bases de datos NoSQL.
2- Capa de almacenamiento
Almacena formatos de archivo de código abierto para almacenar datos no estructurados, semiestructurados y estructurados. Los Data Lakehouse están diseñados para aceptar todo tipo de datos como objetos en almacenes de objetos asequibles (por ejemplo, AWS S3).
Puede usar formatos de archivo abiertos para leer estos objetos a través de las herramientas del cliente. Como resultado, los componentes de la capa de consumo y diferentes API pueden acceder y trabajar con los mismos datos.
3- Capa de metadatos
Es un catálogo unificado que abarca los metadatos de los objetos del Data Lake. Esta capa proporciona las funciones de almacenamiento de datos a las que se puede acceder en los sistemas de administración de bases de datos relacionales (RDBMS). Por ejemplo, puede crear tablas, implementar upserts y definir funciones que mejoren el rendimiento de RDBMS.
4- Capa API
Esta capa se utiliza para alojar diferentes API para permitir que los usuarios finales procesen tareas rápidamente y aprovechen los análisis avanzados. Esta capa produce un nivel de abstracción que permite a los consumidores y desarrolladores obtener el beneficio del uso de una gran cantidad de lenguajes y bibliotecas. Estas API y bibliotecas están optimizadas para consumir sus activos de datos en su capa de data lake (ejemplo: las API de DataFrames en Apache Spark).
5- Capa de consumo de datos
Esta capa se utiliza para albergar diferentes herramientas y aplicaciones. Las aplicaciones cliente pueden usar la arquitectura de Data Lakehouse para acceder a los almacenes de datos en el Data Lake. Los empleados dentro de una empresa pueden usar el mismo, para realizar diferentes actividades de análisis, como consultas SQL, tableros de BI y visualización de datos.
Data Warehouse vs Data Lake vs Data Lakehouse
El Data Warehouse es la tecnología de almacenamiento de big data con mayor antigüedad, con una larga historia en aplicaciones de inteligencia comercial, informes y análisis. Sin embargo, tienden requerir una mayor inversión y problemas con los datos no estructurados, como la transmisión y la variedad de datos.
Los Data Lakes por su parte, surgieron para manejar datos sin procesar en varios formatos en almacenamiento económico para cargas de trabajo de ciencia de datos y aprendizaje automático (machine learning and data science workloads). Y aunque los Data Lakes funcionan bien con datos no estructurados, carecen de las funciones transaccionales ACID de los Data Ware, lo que dificulta garantizar la coherencia y la confiabilidad de los datos.
El Data Lakehouse es la arquitectura de almacenamiento de datos más reciente que combina la rentabilidad y la flexibilidad de los lagos de datos con la confiabilidad y consistencia de los almacenes de datos.
Esta tabla resume las diferencias entre Data Warehouse, Data Lake y Data Lakehouse
Data Warehouse | Data Lake | Data Lakehouse | |
Tipo de datos de almacenamiento | Funciona bien con datos estructurados. | Funciona bien con datos semiestructurados y no estructurados. | Puede manejar datos estructurados, semiestructurados y no estructurados. |
Objetivo | Óptimo para casos de uso de análisis de datos e inteligencia empresarial (BI). | Adecuado para cargas de trabajo de aprendizaje automático (ML) e inteligencia artificial (IA). | Adecuado tanto para análisis de datos como para cargas de trabajo de aprendizaje automático. |
Costo | El almacenamiento es costoso y requiere mucho tiempo. | El almacenamiento es rentable, rápido y flexible. | El almacenamiento es rentable, rápido y flexible. |
Cumplimiento ACID | Registra datos de manera compatible con ACID para garantizar los más altos niveles de integridad. | Cumplimiento no ACID: las actualizaciones y eliminaciones son operaciones complejas. | Cumple con ACID para garantizar la coherencia ya que varias partes leen o escriben datos al mismo tiempo. |
La elección de qué arquitectura de almacenamiento de big data elegir dependerá en última instancia del tipo de datos con los que esté tratando, la fuente de datos y principalmente cómo las partes interesadas utilizarán los datos (objetivos).
¿Cuándo usar un Data Lakehouse?
Un Data Lakehouse puede ser complejo de construir desde cero. Y lo más probable es que utilice una plataforma creada para admitir esta construcción. Por lo tanto, es esencial el investigar las diferentes capacidades e implementaciones de cada plataforma antes de elegir alguna.
Un Data Warehouse es una buena opción para las empresas que buscan una solución de datos estructurada y madura que se centre en casos de uso de análisis de datos e inteligencia empresarial. Sin embargo, los Data Lakes son adecuados para organizaciones que buscan una solución de big data flexible y de bajo costo para impulsar cargas de trabajo de aprendizaje automático y ciencia de datos en datos no estructurados.
En el supuesto que, un Data Warehouse y Data Lake no llegaran a satisfacer las demandas de datos de su empresa (tipos, volumen, análisis y objetivos). O que está buscando formas de implementar cargas de trabajo de análisis avanzado y aprendizaje automático en sus datos una arquitectura; un Data Lakehouse podría ser una opción más razonable.
¿Cuándo no usar un Data Lakehouse?
No siempre un Data Lake es la mejor solución. Toda arquitectura tiene sus pros y sus contras; si bien un Data Lakehouse es la solución ideal para plataformas, cargas de trabajo analíticas y para casos muy específicos donde se requieren y justifica una arquitectura híbrida, no es adecuado para procesos transaccionales.
Debido al desacoplamiento del almacenamiento y la computación, las consultas sufren retrasos muy pequeños pero notables, ya que los datos deben recuperarse del almacenamiento y cargarse en la computación para brindarle el resultado correcto.
Por lo tanto, el uso de una arquitectura Data Lakehouse como proceso transaccional (= OLTP) no sería beneficioso para los usuarios comerciales.
Así mismo, la elección de una arquitectura moderna como es un Data Lakehouse debe siempre ir acorde a los objetivos de analítica de las áreas o empresas.
Conclusión
Un Data Lakehouse es una forma rentable de proporcionar una plataforma de datos para cargas de trabajo analíticas. La confianza cada vez mayor de los científicos de datos y los usuarios comerciales alimenta una revolución que requiere desvincular el almacenamiento y la computación.
Puede ser complicado construir y mantener un Data Lakehouse debido a su arquitectura monolítica. Además, es posible que su diseño único para todos no siempre brinde la misma calidad que puede obtener con otros enfoques que están diseñados para abordar casos de uso más específicos.
Por otro lado, se debe estudiar la opción, ya que hay muchos escenarios en los que un Data Lake puede agregar valor a su organización. Se aconseja considerar entre los puntos más importantes a la hora de elegirla como la estructura a implementar: objetivos, volúmenes da datos, tipos de datos, costo-beneficio, visión a corto, mediano y largo plazo, variables propias del negocio o escenario en particular e infraestructura actual y futura para su implementación.
Los Data Lakehouse pueden ayudar a organizar todos sus datos en un solo nivel. Luego puede optimizar estos datos para varios tipos de consultas sobre datos estructurados y no estructurados. Por ejemplo, si desea utilizar tanto IA como BI, para abordar la incoherencia y la redundancia de datos causadas por múltiples sistemas. la versatilidad de un Data Lakehouse puede ser útil.
Otros temas de interés:
8 comentarios en “¿Qué es un Data Lakehouse?”