Что привёз Apache Iceberg 1.11.0 после полугодовой паузы

19 мая вышел Apache Iceberg 1.11.0. Релиз можно назвать долгожданным: предыдущий крупный релиз, Iceberg 1.10.0, вышел ещё в сентябре 2025 года, так что следующую версию ждали больше полугода.

Одно из ключевых изменений — поддержка Spark 4.1. В релизе появился отдельный runtime Jar для Spark 4.1, а сам Spark 4.1 стал одним из дефолтных build targets. В этой же ветке есть начальная поддержка MERGE INTO со schema evolution для Spark 4.1. Второй принципиальный момент — отказ от Java 11. Iceberg 1.11.0 переходит на JDK 17 baseline. Теперь для работы с новыми версиями Iceberg потребуется Java 17 или новее. Ещё одна заметная фича — распределённое планирование чтения. В Spark появилась поддержка remote scan planning: подготовку scan tasks можно выносить из драйвера ближе к каталогу. Для больших таблиц с большим количеством manifest-файлов это снижает роль драйвера как узкого места на этапе планирования запроса.

В спецификации появился блок про SQL UDF. Функции можно описывать как часть метаданных Iceberg и потенциально переиспользовать между разными движками. Также в релиз вошли geospatial bounding box types, Scan API для partition stats и базовые типы для будущей поддержки V4 manifests. Из ограничений: кроме отказа от Java 11, в Iceberg 1.11.0 поддержка Spark 3.4 помечена как deprecated, а Flink 1.19 удалён.

Кто уже успел обновиться, как вам? Какие изменения кажутся действительно полезными? Приглашаем в комментарии