- El campo de la gestión de datos está cambiando rápidamente, y con el crecimiento del almacenamiento en la nube y la demanda de analítica en tiempo real, el concepto de Data Lakehouse ha ido ganando relevancia
- Proyectos como Apache Iceberg, Apache Hudi y Delta Lake han aportado funciones clave a la arquitectura Lakehouse, como evolución de esquemas, transacciones ACID y actualizaciones eficientes
- El sistema interno de Google, Napa, propone un enfoque más avanzado que las soluciones Lakehouse actuales
- Además, al incorporar ideas de otros sistemas como Apache Pinot, se propone LakeDB como la siguiente generación de Lakehouse
Entorno actual de Lakehouse: Iceberg, Hudi, Delta Lake
- Apache Iceberg
- Admite evolución de esquemas, time travel y planeación eficiente de consultas mediante una gestión sofisticada de metadatos
- Proporciona garantías de consistencia para grandes conjuntos de datos analíticos
- Apache Hudi
- Aprovecha almacenamiento basado en estructura de logs e indexación para procesar de forma eficiente upsert, delete y CDC (captura de datos de cambios)
- Pone énfasis en la mutación de datos y el procesamiento incremental
- Delta Lake
- Proporciona transacciones ACID para Spark y cargas de trabajo de big data
- Admite validación de esquemas, time travel y procesamiento unificado de batch y streaming
- También ofrece en parte pipelines declarativos y vistas materializadas mediante Delta Live Tables
Napa de Google: un enfoque macroscópico
- Es un sistema completo de gestión de datos analíticos que admite consultas de baja latencia y carga continua de datos a gran escala
- Carga basada en LSM (Log-Structured Merge)-Tree
- Adopta el enfoque LSM-tree para lograr alto rendimiento de escritura, con una estructura que fusiona los datos existentes mediante compactación
- Uso de vistas materializadas
- Mantiene y actualiza automáticamente vistas materializadas para acelerar las consultas
- Queryable Timestamp (QT)
- Proporciona gestión consistente de puntos en el tiempo en todo el sistema
- Permite ajustar con precisión el equilibrio entre frescura de los datos y rendimiento de consulta
- Integración con F1 Query
- Aprovecha el motor F1 Query de Google para procesar eficientemente consultas analíticas complejas
- Alta configurabilidad
- Permite ajustar frescura de datos, rendimiento, costos y más según las necesidades del usuario
Comparación entre Napa, Iceberg, Hudi y Delta Lake
- Napa es un sistema integral de gestión de datos analíticos que admite consultas rápidas mediante vistas materializadas basadas en LSM y ajusta finamente la frescura de los datos con una técnica llamada Queryable Timestamp (QT). Resulta útil en escenarios donde se quiere analizar y reportar rápidamente grandes volúmenes de datos, y gracias a su alta flexibilidad de configuración permite equilibrar adecuadamente costo, rendimiento y frescura.
- Iceberg es un proyecto centrado en el formato de tabla, que administra archivos de datos a gran escala mediante metadatos y ofrece funciones como actualizaciones atómicas. Se utiliza principalmente en entornos de data lake que requieren funciones como data warehousing, evolución de esquemas o time travel, y sus opciones de configuración se concentran sobre todo en el layout de tablas y los metadatos.
- Hudi es una plataforma que incorpora capacidades similares a las de una base de datos dentro de un data lake, y maneja eficientemente operaciones de mutación de datos como upsert o delete mediante almacenamiento basado en estructura de logs y técnicas de indexación. Está diseñada para responder bien a requisitos como carga en tiempo real, captura de datos de cambios (CDC) y cumplimiento regulatorio como GDPR, aunque no ofrece vistas materializadas de forma nativa.
- Delta Lake es una capa de almacenamiento con soporte para transacciones ACID, que procesa de manera integrada trabajos batch y streaming, al tiempo que ofrece enforcement de esquemas y funciones de time travel. Para mejorar el rendimiento de consulta, aprovecha data skipping y caching en integración con Spark, y también admite conceptos similares a vistas materializadas mediante Delta Live Tables separadas. Se usa con frecuencia cuando se busca agregar confiabilidad y capacidades transaccionales en distintos entornos de data lake.
La propuesta de LakeDB: inspiración en Napa, aprendizaje de otros sistemas
- Al combinar ideas innovadoras de Napa y de Apache Pinot, entre otros, se propone el concepto de LakeDB como una solución más integrada y flexible
- LakeDB apunta a ser una solución de gestión de datos donde el usuario expresa de forma declarativa sus necesidades (frescura, costo, consistencia, uso de índices, etc.) y el sistema se encarga de optimizar automáticamente
1. Integración de almacenamiento, carga, metadatos y procesamiento de consultas
- Un solo sistema incluye almacenamiento, carga, metadatos y procesamiento de consultas
- El usuario solo especifica la frescura y consistencia de los datos, y las tareas necesarias se ajustan automáticamente
- En Iceberg, Hudi y Delta Lake, esta parte requiere integrar herramientas separadas, lo que aumenta la complejidad
2. Optimización inteligente de vistas materializadas y layout de datos
- Cambia automáticamente entre CoW (Copy-on-Write) y MoR (Merge-on-Read) según la carga de trabajo
- Genera y administra snapshots y vistas materializadas de forma adecuada según los requisitos definidos por el usuario en rendimiento y costo
- En Hudi, Delta Lake e Iceberg, este proceso en su mayor parte debe configurarse manualmente
3. Control fino de la frescura de los datos
- Igual que el QT de Napa, el usuario puede definir el nivel de frescura deseado y el sistema encuentra el punto de equilibrio entre rendimiento y costo
- En los sistemas existentes, era difícil garantizar comportamiento en tiempo real porque dependían de snapshots periódicos y monitoreo
4. Indexación y particionamiento avanzados inspirados en Apache Pinot
- Admite métodos avanzados de indexación como Star-Tree, lo que permite manejar también analítica de alta cardinalidad
- Busca mejoras de rendimiento que van más allá del particionamiento simple y el data skipping de Iceberg y Delta Lake
5. Configuración flexible
- La misma tabla puede configurarse para varios consumidores con distintos requisitos de rendimiento, costo y frescura
- Los sistemas existentes tienen un rango de configuración limitado, por lo que requieren mucho tuning manual para responder a cargas de trabajo diversas
6. Soporte para ACID y evolución de esquemas
- Hereda y amplía la base de ACID y evolución de esquemas de Iceberg y Delta Lake
- Busca automatizar cambios de esquema concurrentes y la garantía de consistencia de datos en entornos distribuidos
7. Apertura y escalabilidad
- Admite estándares abiertos e integración con distintos motores de consulta, y puede ampliarse según sea necesario
- Evita depender de un proveedor o plataforma específicos y permite aplicar capacidades de forma flexible según las necesidades del usuario
Por qué LakeDB es la siguiente evolución
- Rendimiento: se acerca a velocidades de nivel OLAP mediante índices avanzados, vistas materializadas y optimización dinámica del layout de datos
- Simplicidad: ofrece funciones de gestión dentro de un solo sistema, de modo que basta con definir los requisitos del usuario (frescura, rendimiento, etc.) para que se ajusten automáticamente
- Eficiencia: reduce el uso de recursos y la carga operativa, por lo que también puede ofrecer ventajas de costo
- Flexibilidad: permite responder a diversas cargas de trabajo con control fino de la frescura de los datos y opciones de configuración ricas
- Analítica en tiempo real: incorpora técnicas de indexación de Apache Pinot para buscar tanto baja latencia como alto throughput
Conclusión
- Apache Iceberg, Apache Hudi y Delta Lake han desempeñado un papel importante en la evolución del concepto de Lakehouse
- Al combinar el enfoque de Napa de Google con ideas de Apache Pinot y otros sistemas, es posible imaginar una visión de LakeDB más integrada y poderosa
- LakeDB tiene alto potencial de convertirse en la arquitectura de gestión de datos de próxima generación como un sistema integrado y maduro que abarca almacenamiento, carga, metadatos y procesamiento de consultas
Aún no hay comentarios.