Apache Iceberges un formato de alto rendimiento para grandes tablas analíticas. Iceberg aporta un acceso SQL a los formatos Big Data, al tiempo que permite que la fiabilidad y la sencillez de las tablas SQL a los biga data, al tiempo que hace posible que motores como Spark, Trino, Flink, Presto, Hive o Impala trabajen con seguridad con las mismas tablas, al mismo tiempo.
Así., Iceberg soporta comandos SQL para combinar nuevos datos, actualizar filas existentes y realizar borrados selectivos. Iceberg puede reescribir los archivos de datos para mejorar el rendimiento de la lectura, o puede utilizar deltas de borrado para acelerar las actualizaciones:
También permite una evolución completa del esquema, Iceberg permite añadir una columna, o renombrarla o reordenarla y no se devolverán datos "zombis", además estos cambios no requieren reescribir la tabla.
Iceberg también ofrece Particionado oculto, de modo que se encarga de la tediosa tarea de producir valores de partición para las filas de una tabla y omite automáticamente las particiones y archivos innecesarios sin filtros adicionales para las consultas, además la disposición de la tabla puede actualizarse a medida que cambian los datos o las consultas.
Con sus Snapshots y rollbacks se pueden realizar consultas reproducibles que utilizan exactamente la misma instantánea (snapshot) de la tabla, o permite a los usuarios examinar fácilmente los cambios. El rollback de versiones permite a los usuarios corregir rápidamente los problemas restableciendo las tablas a un buen estado.
Iceberg también soporta el compactado de datos out-of-the-box con diferentes estrategias de rewrite.
En el próximo post entraremos en detalle en todas estas capacidades y veremos cómo usar Iceberg desde su API Java.