Elegir el formato de almacenamiento adecuado es crucial para optimizar el rendimiento, el costo y la flexibilidad al trabajar con datos en la nube. Justamente es esto lo que se puede lograr con Apache Iceberg.
Tradicionalmente, formatos de archivo como Apache Parquet y Avro fueron opciones populares para almacenar datos en data lakes. Sin embargo, en los últimos años está ganando terreno una nueva clase de soluciones conocidas como formatos de tabla, gracias a sus capacidades de gestión optimizadas.
¿El motivo? Este tipo de formato ofrece capacidades de gestión optimizadas. Dentro de las diferentes opciones disponibles en el universo de table formats, Apache Iceberg se consolida como una de las alternativas más elegidas.
En este artículo, explicamos el funcionamiento y los beneficios de trabajar con el formato de tabla Iceberg.
¿Qué es y cómo funciona Apache Iceberg?
Se trata de un formato de tabla de código abierto y alto rendimiento, diseñado para grandes tablas analíticas y conjuntos de datos.
Habitualmente, Iceberg se usa para implementar una arquitectura de tipo lakehouse, que combina las características clave de los data warehouses (como transacciones ACID y consultas SQL), con la rentabilidad, la flexibilidad y la escalabilidad de los data lakes.
Iceberg proporciona la capa de metadatos para habilitar una semántica similar a la de un warehouse sobre el almacenamiento de lagos de datos.
Optimizado para gestionar datos en lotes y en tiempo real, 100% open source e independiente de cualquier herramienta y motor de data lake, este formato de tabla ofrece la flexibilidad e interoperabilidad que exigen los equipos de datos en la actualidad.
Apache Iceberg utiliza tablas lógicas que hacen referencia a datos en columnas que residen en almacenes de objetos en la nube, junto con sus metadatos asociados. Los datos subyacentes se almacenan en formatos en columnas, organizados según un esquema de particionamiento definido en los metadatos de la tabla.
Este formato utiliza una sofisticada capa de metadatos para rastrear los archivos de una tabla, incluyendo esquemas, particiones y otras propiedades.
Iceberg rastrea los datos de una tabla en dos niveles. Primero, un almacén de metadatos central rastrea el esquema y la partición de la tabla. A continuación, la solución rastrea cada archivo de datos de una tabla, junto con las estadísticas a nivel de archivo y la información de partición.
Las tablas Iceberg se pueden crear, leer y actualizar utilizando diversas herramientas y marcos de trabajo como Apache Spark, Apache Flink o Qlik Talend Cloud.
A su vez, estas tablas se pueden consultar fácilmente mediante motores como Amazon Athena, Trino, Presto, Spark, Dremio y cloud data warehouses como Snowflake, Databricks y BigQuery, lo que permite aprovechar las optimizaciones de rendimiento y las capacidades de evolución de esquemas de Iceberg.
Algunas de sus características principales son:
- Abstracción de tablas. Permite interactuar con los datos del lago de datos usando comandos SQL estándar, como si fueran tablas de base de datos, facilitando la consulta y gestión en los lakehouses.
- Transacciones ACID. Garantiza la consistencia y fiabilidad de los datos. Múltiples usuarios pueden leer y escribir simultáneamente sin conflictos, crucial en entornos donde la data se actualiza y se revisa constantemente.
- Evolución de esquemas. Facilita la adaptación a cambios en los datos. Con este formato, los usuarios pueden agregar, eliminar o renombrar columnas fácilmente sin tener que reescribir todo el conjunto de datos.
- Compactación de datos. Fusiona archivos de datos pequeños en archivos más grandes, lo que reduce la cantidad de archivos a analizar en las consultas.
- Poda de particiones. Permite que las consultas omitan particiones irrelevantes, procesando solo los datos necesarios.
- Time travel. Brinda la posibilidad de consultar versiones históricas de una tabla. Esto es muy útil para auditorías, depuración y reproducir resultados, facilitando el seguimiento de cambios y el linaje de los datos.
Estas características hacen que los servidores de almacenamiento en la nube sean más usables y adaptables, a la vez que permite que las organizaciones ejecuten consultas complejas, realicen actualizaciones en tiempo real y soporten diversas cargas de trabajo como procesamiento por lotes, streaming y aprendizaje automático.
6 beneficios de trabajar con el formato de tabla Iceberg
Son diversos los beneficios que aporta la adopción de Apache Iceberg, especialmente en términos de agilidad, flexibilidad, interoperabilidad y colaboración.
Flexibilidad e interoperabilidad
Iceberg es open source y se alinea con estándares abiertos, lo que fomenta la flexibilidad y permite su uso con una amplia gama de herramientas en un ecosistema creciente (como Snowflake, Databricks, Apache Spark, Flink, Trino, Presto, Hive, entre otras). Esto evita la dependencia de un único proveedor.
Transacciones confiables
Las transacciones ACID proporcionan actualizaciones y eliminaciones de tablas aisladas y atómicas.
Iceberg utiliza un modelo de concurrencia optimista para implementar transacciones entre motores concurrentes, lo que permite que múltiples usuarios escritores y lectores trabajen de forma segura en la misma tabla sin conflictos.
Modificaciones optimizadas de los esquemas
La compatibilidad con la evolución del esquema facilita la modificación del schema de la tabla, manteniendo la compatibilidad con los datos existentes.
Apache Iceberg gestiona automáticamente la asignación de esquemas y conserva un historial completo, facilitando los cambios sin complicaciones.
Particionamiento inteligente
El particionamiento oculto asigna automáticamente los datos a los valores de la partición según la configuración de la tabla.
Los valores de la partición no necesitan almacenarse en los propios archivos de datos. De esta manera, Iceberg simplifica el diseño de los datos y facilita la evolución de la partición.
Time travel para datos históricos
La función de time travel permite consultar versiones históricas de tablas y revertir estados anteriores.
El almacén de metadatos de Iceberg rastrea cada versión de una tabla, lo que permite recrearla en cualquier momento.
Optimización avanzada del rendimiento
Iceberg mejora significativamente el rendimiento de las consultas gracias a la poda de particiones y las estadísticas a nivel de archivo.
Registra valores mínimos y máximos por columna para cada archivo, permitiendo que las consultas filtren de forma inteligente particiones y archivos irrelevantes, reduciendo drásticamente la cantidad de datos a escanear.
Qlik, partner clave para una gestión efectiva de lakehouses Iceberg
Aunque Iceberg proporciona una base sólida para los datos, la gestión y optimización de tablas a escala aún implica una importante sobrecarga operativa. ¿Cómo resolver este desafío? De la mano de Qlik.
Qlik Talend Cloud, integrado con el motor Upsolver, ofrece una plataforma integral y totalmente gestionada que automatiza la ingesta, la transformación, la gobernanza y la optimización de tablas Iceberg.
Gracias a esta solución, las organizaciones pueden ingerir fácilmente datos en tiempo real o por lotes de cientos de fuentes diversas y transferirlos directamente a tablas Iceberg auto optimizadas.
Qlik gestiona automáticamente la ingesta de baja latencia, la creación de tablas, las actualizaciones de schemas, el particionamiento y la compactación, la vez que ofrece una interfaz visual no code para crear, gestionar y transformar los datos dentro de tablas Iceberg sin necesidad de infraestructura.
Además, Qlik mejora el rendimiento de Iceberg con su optimizador adaptativo. Se trata de una herramienta que analiza y optimiza las tablas de Iceberg, logrando un rendimiento de consultas hasta 5 veces mayor y una reducción del 50% en espacio y costos de almacenamiento comparado con Iceberg autogestionado.
¿Cómo lo consigue? Compactando archivos pequeños, ajustando el tamaño de los archivos, realizando particiones dinámicas y eliminando metadatos innecesarios. Así, garantiza un alto rendimiento y a un costo asequible.
Al combinar la potencia de este formato de tabla con la ingesta en tiempo real de Qlik Talend Cloud, las empresas pueden implementar una arquitectura de almacenamiento altamente eficiente.
De esta forma, reducen drásticamente la carga operativa, liberando a los equipos de datos para que se enfoquen en el análisis y la obtención de insights, en lugar de tener que ocuparse de administrar la infraestructura.
¿Querés saber más sobre el funcionamiento de Apache Iceberg? ¡Hablemos!