Noticias Programación

Apache Iceberg mejora el soporte de Spark

Apache Iceberg 0.14 se lanzó con mejoras en la compatibilidad con Spark y un cliente de catálogo REST común que utiliza confirmaciones basadas en cambios para resolver conflictos de confirmación del lado del servidor.


Iceberg es un formato de alto rendimiento para enormes tablas analíticas de relación de aspecto titánica desarrollado originalmente por Netflix. Iceberg se transformó en un proyecto de incubadora Apache de código abierto en 2018 y se graduó para convertirse en un proyecto de primer nivel en 2020.

Netflix creó Iceberg para proporcionar una forma de trabajar con conjuntos de datos muy grandes y garantizar que el formato funcione de manera tan confiable y predecible como SQL. Iceberg aporta la confiabilidad y la simplicidad de las tablas SQL a Big Data, al tiempo que permite que motores como Spark, Trino, Flink, Presto, Hive e Impala trabajen de manera segura con las mismas tablas al mismo tiempo.

Los comandos SQL se pueden usar en Iceberg para fusionar nuevos datos, actualizar filas existentes y realizar eliminaciones específicas. Iceberg puede reescribir con entusiasmo los archivos de datos para obtener un rendimiento de lectura, o puede usar deltas de poda para actualizaciones más rápidas.

La evolución del esquema funciona, las columnas se pueden renombrar y reordenar, y acciones como agregar una columna no recuperarán los datos «zombies». Iceberg admite «particiones ocultas». En otras palabras, maneja la tarea de producir valores de partición para filas en una tabla y omite automáticamente particiones y archivos innecesarios. No se necesitan filtros adicionales para consultas rápidas, y el diseño de la tabla se puede actualizar a medida que cambian los datos o las consultas.

El viaje en el tiempo permite consultas reproducibles que utilizan exactamente la misma instantánea de la tabla o permite a los usuarios revisar fácilmente los cambios. La reversión de la versión permite a los usuarios solucionar problemas rápidamente al restaurar el estado de las tablas.

Las mejoras a la última versión comienzan con varias mejoras de rendimiento para la programación de análisis y las consultas de Spark. Específicamente, las lecturas vectorizadas de Parquet están habilitadas de forma predeterminada y ScanBuilder ahora tiene SupportsReportStatistics. Las tablas de Spark también se han actualizado para evitar estimaciones dimensionales costosas (e inexactas). Se agregó soporte para Spark 3.3, incluida la sintaxis AS OF para consultas SQL de viajes en el tiempo. También hay soporte de combinación de lectura para consultas MERGE y UPDATE en Spark 3.2 o posterior,

Otras mejoras incluyen un nuevo cliente de catálogo REST común que utiliza confirmaciones basadas en cambios para resolver conflictos de confirmación del lado del servicio; y nuevas interfaces para consumir datos de forma incremental (tanto para agregar como para cambiar escaneos de registros). Los desarrolladores también agregaron una especificación e implementación para Puffin, que es un formato para estadísticas y blobs de índice grande, como bocetos Theta o filtros de floración.

Iceberg 0.14 ya está disponible.

iceberg

También puede gustarte...