Новостная пятница! DuckDB ×3, умнее join и JSON в Iceberg: что обновилось в data-инструментах

Из свежего в инструментах обработки данных: DuckDB меняет работу с удалёнными файлами, Iceberg расширяет модель данных, Polars оптимизирует join. В DuckDB 2.0 асинхронный I/O позволит параллельно держать несколько чтений Parquet и CSV, не блокируя worker на ожидании ответа от storage. На Parquet в S3 команда получила почти трёхкратное ускорение. Пока это preview в 2.0.0-dev. Iceberg v3 получил Variant для JSON-подобных данных с изменяющейся структурой. В Parquet такие поля можно частично раскладывать в обычные типизированные колонки через shredding, сохраняя преимущества колоночного чтения. Polars 1.43 оптимизировал join поверх Hive-partitioned данных: движок теперь читает только те партиции, которые могут совпасть. Для rolling min_by и max_by также появился алгоритм с амортизированной линейной сложностью вместо пересчёта каждого окна.

Похоже, поводов немного порадоваться производительности в этом месяце хватает)