Seleccionar página

Data Lakehouse

Cuando una organización planea utilizar grandes cantidades de datos, se encuentran con diferentes tecnologías, diseños y prácticas. Las plataformas para analizar los datos usando Data Warehouses han sido muy utilizados. Sin embargo, en los últimos años llegó Data Lakehouse que consta con un diseño diferente y la promesa de utilizar lo mejor de dos mundos, el bajo costo de almacenamiento de un data lake y la capacidad de procesar datos de un warehouse. Data Lakehouse es conocido como una arquitectura moderna por sus ventajas. ¿Es solo una moda o realmente vale la pena?

 

Data Lakehouse

La flexibilidad de un Data Lakehouse se manifiesta en la diversidad de opciones para almacenar datos en un Data Lake y los motores SQL con la capacidad de procesar los datos. Hay tecnologías económicas y costosas, puedes elegir según tus necesidades organizacionales.

Las soluciones tradicionales Data Warehouse proveen internamente el almacenamiento de los datos y su procesamiento usando SQL. Los costos de almacenamiento son establecidos por el warehouse sin mucha flexibilidad, añadiendo el precio del procesamiento y otros. Por otro lado, usando un lakehouse puedes optar por elegir un data lake a bajo costo y un motor SQL sencillo que sea fácil de disponibilizar.

 

Data Lake

Data Lake provee un lugar centralizado donde se almacenan los datos proporcionados por múltiples fuentes. Los datos pueden ser almacenados en un AWS S3 bucket, objetos GCP, un sistema de archivos y otros. Cada fuente tiene su propio mecanismo para escribir y obtener los datos, velocidades, precios y límites.

Los datos en un Data Lake contienen diferentes formatos. Un archivo csv, parquet o json, las imágenes y videos también son permitidos. Los formatos de tabla son importantes en un Lakehouse. Por ejemplo, puedes usar Apache Iceberg que soporta operaciones CRUD sobre archivos como insertar, actualizar y eliminar datos, tal como funciona una tabla en una base de datos. Adicionalmente un formato de tabla como Iceberg contiene una estructura de archivos con estadísticas sobre las columnas, particiones que permiten acelerar las consultas y más cosas interesantes como Time Travel. Un Lakehouse tiende a utilizar formatos de tabla.

Los datos son almacenados en un data lake sin procesamiento alguno, cercanos a como la fuente los provee. Usualmente todavía no hay validaciones, limpiezas ni revisiones de calidad sobre esos datos que pueden ser estructurados, semi estructurados o sin estructura alguna.

 

Motor SQL

El motor SQL se encarga de procesar los datos que se encuentran almacenados en un Data Lake. Hay una respetable gama de opciones, motores open source como Trino funcionan también realizando Federated Queries que consultan otras fuentes como bases de datos relacionales, archivos y APIs. Spark sql provee otro motor muy utilizado.

Los datos son procesados, transformados y almacenados usando un motor SQL. Al tener los datos en un Data Lake que permite operaciones SQL, puedes crear nuevos modelos o tablas en un ciclo de datos que escribe archivos y sigue un diseño como Medallion para datos en bruto, los transformados y datos listos para usar en reportes, Machine Learning y aplicaciones.

Incluso algunas plataformas Data Warehouse pueden ser utilizados como motor SQL para realizar búsquedas en los archivos de un Data Lake. Snowflake y Redshift son solo algunas opciones donde no necesariamente se restringen a tener archivos internos para procesar datos. Ten en cuenta que en un Lakehouse, las herramientas como Trino o Spark no son las que contienen datos, las fuentes siempre son externas.

 

Catalogo de datos

El catálogo de datos es un lugar centralizado donde se almacena la metadata de los datos con información sobre las tablas disponibles y sus esquemas.

Cada tabla creada y/o actualizada se registra en el catálogo y un Motor SQL puede leer el catálogo para averiguar las tablas disponibles y donde se encuentran. La magia radica en que los archivos de un data lake son registrados en el catálogo y así los motores SQL pueden descubrir esos archivos para usarlos como si fueran tablas de una base de datos.

El catálogo también puede ser usado como parte del control de acceso, proveer Lineage y auditoría. Los principales proveedores Cloud tienen un catálogo disponible, en AWS podemos encontrar AWS Glue Catalog, en Google existe Dataplex. Hive es uno de los primeros catálogo de datos usados para analitica y todavía esta vigente.

 

Las capacidades técnicas

Un Data Lakehouse abierto puede integrar componentes de código abierto y gratuitos. Las opciones de customización están ligadas a las capacidades de los desarrolladores que están trabajando para proveer un lakehouse.

Crear un ecosistema que extraiga datos, los almacena en un formato tabla, que permita transformar datos y disponibilizar de forma segura no es una tarea fácil considerando que falta mencionar otras partes como autenticación y autorización de usuarios.

Afortunadamente hay tecnologías a elegir para cada componente del Lakehouse, las plataformas cloud suelen proveer servicios que se pueden utilizar juntos. Integrar cada componente requiere de un equipo de datos capaz de proveer la infraestructura, monitoreo y soporte.

Por ejemplo, se pueden utilizar los componentes disponibles en AWS Cloud como Glue, Glue Workflows, Glue Data Catalogs y Apache Iceberg, pero la configuración se vuelve más complicada cuando añades seguridad, casos de uso con usuarios fuera de AWS, y un entorno amigable.

 

Lakehouse empresariales

También hay opciones empresariales que proveen un Lakehouse. Starburst es una compañía que provee Lakehouse listo para ser utilizado. Databricks también provee una infraestructura completa y plataformas como Snowflake funcionan como un híbrido Data Warehouse y Lakehouse.

Si las opciones empresariales listas para usar no son suficientes para tu caso de uso, o son muy grandes para tu empresa o costosas. También puedes construir tu propio lakehouse uniendo distintas tecnologías.

 

Un Data Lakehouse tiene sus ventajas y limitaciones. Puedes proveer un data lake y un motor SQL sin mucho esfuerzo, pero a medida que vas integrando otros componentes como sincronización con un catálogo de datos, seguridad, autenticación y más, se va complejizando cada vez más la implementación. Tenes un ecosistema de plataformas para utilizar y añadir al Lakehouse según las necesidades, presupuesto y tiempo de mantenimiento disponibles. Y si quieres evitar diseños y desarrollos complejos, ve por un Lakehouse empresarial que sin dudas son también una buena opción.

Un Data Lakehouse es adecuado cuando tienes claro el caso de uso para los datos en una organización y su presupuesto. Las limitaciones de tu diseño dependen de las tecnologías elegidas y el equipo de trabajo a cargo de la infraestructura.