Las 5 Principales Características de Apache Iceberg para Lagos de Datos Modernos

Los grandes datos han evolucionado significativamente desde su inicio a finales de la década de 2000. Muchas organizaciones se adaptaron rápidamente a la tendencia y construyeron sus plataformas de big data utilizando herramientas de código abierto como Apache Hadoop. Más tarde, estas empresas comenzaron a enfrentar dificultades para gestionar las necesidades de procesamiento de datos en rápida evolución. Han enfrentado desafíos para manejar cambios a nivel de esquema, evolución de esquemas de partición y retroceder en el tiempo para observar los datos.

Yo enfrenté desafíos similares mientras diseñaba sistemas distribuidos a gran escala en la década de 2010 para una gran empresa tecnológica y un cliente del sector salud. Algunas industrias necesitan estas capacidades para cumplir con las regulaciones bancarias, financieras y de salud. Empresas intensamente basadas en datos como Netflix también enfrentaron desafíos similares. Inventaron un formato de tabla llamado “Iceberg”, que se sitúa sobre los archivos de datos existentes y ofrece características clave aprovechando su arquitectura. Esto se ha convertido rápidamente en el principal proyecto de ASF, ya que ganó un rápido interés en la comunidad de datos. Exploraré las 5 principales características clave de Apache Iceberg en este artículo con ejemplos y diagramas.

1. Viaje en el tiempo

Figura 1: Viaje en el tiempo en el formato de tabla de Apache Iceberg (imagen creada por el autor)

Esta función te permite consultar tus datos tal como existen en cualquier momento. Esto abrirá nuevas posibilidades para los analistas de datos y de negocios para entender las tendencias y cómo los datos evolucionaron a lo largo del tiempo. Puedes retroceder sin esfuerzo a un estado anterior en caso de errores. Esta función también facilita las auditorías al permitirte analizar los datos en un momento específico.

SQL

 

2. Evolución del Esquema

La evolución del esquema de Apache Iceberg permite cambios en tu esquema sin ningún gran esfuerzo o migraciones costosas. A medida que tus necesidades comerciales evolucionan, puedes:

  • Agregar y eliminar columnas sin tiempo de inactividad ni reescrituras de tablas.
  • Actualizar la columna (ampliación).
  • Cambiar el orden de las columnas.
  • Renombrar una columna existente.

Estos cambios se manejan a nivel de metadatos sin necesidad de reescribir los datos subyacentes.

SQL

 

3. Evolución de Particiones

Usando el formato de tabla de Apache Iceberg, puedes cambiar la estrategia de particionamiento de la tabla sin reescribir la tabla subyacente ni migrar los datos a una nueva tabla. Esto es posible ya que las consultas no hacen referencia a los valores de partición directamente como en Apache Hadoop. Iceberg mantiene la información de metadatos para cada versión de partición por separado. Esto facilita la obtención de las divisiones al consultar los datos. Por ejemplo, consultar una tabla basada en el rango de fechas, mientras que la tabla usaba el mes como columna de partición (antes) como una división y el día como una nueva columna de partición (después) como otra división. Esto se llama planificación de divisiones. Consulta el ejemplo a continuación.

SQL

 

4. Transacciones ACID

Iceberg proporciona un sólido soporte para transacciones en términos de Atomicidad, Consistencia, Aislamiento y Durabilidad (ACID). Permite múltiples operaciones de escritura concurrentes, lo que habilita un alto rendimiento en trabajos intensivos en datos sin comprometer la consistencia de los mismos.

SQL

 

Todas las operaciones en Iceberg son transaccionales, lo que significa que los datos permanecen consistentes a pesar de fallos o modificaciones a los datos de manera concurrente.

SQL

 

También soporta diferentes niveles de aislamiento, lo que te permite equilibrar el rendimiento y la consistencia según los requisitos.

SQL

 

A continuación se presenta un resumen que muestra cómo Iceberg maneja las actualizaciones y eliminaciones a nivel de fila.

Figura 2: Proceso de eliminación de registros en Apache Iceberg (imagen creada por el autor)

5. Operaciones Avanzadas de Tablas

Iceberg soporta operaciones avanzadas de tablas como:

  • Creación/gestión de instantáneas de tablas: Esto otorga la capacidad de tener un control de versiones robusto.
  • Planificación y ejecución de consultas rápidas con su metadato altamente optimizado
  • Herramientas integradas para el mantenimiento de tablas, como la compactación y la limpieza de archivos huérfanos

Iceberg está diseñado para trabajar con todos los principales almacenamiento en la nube, como AWS S3, GCS y Azure Blob Storage. Además, Iceberg se integra fácilmente con motores de procesamiento de datos como Spark, Presto, Trino y Hive.

Reflexiones Finales

Estas características destacadas permiten a las empresas construir lagos de datos modernos, flexibles, escalables y eficientes, que pueden viajar en el tiempo, manejar fácilmente cambios de esquema, soportar transacciones ACID y evolución de particiones.

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes