Что меняется в Polars, Beam и DuckDB этой осенью
31 августа вышел Apache Beam 2.76.0. В IcebergIO появился полноценный CDC-источник для пакетной и потоковой обработки. Раньше источник видел только новые записи и пропускал overwrite-снапшоты, то есть пропускал вообще все update/delete/merge операции на таблице. Теперь можно читать не только новые, но и измененные данные в любом диапазоне между двумя снапшотами.
2 сентября вышел первый RC Polars 2.0. Главное изменение — LazyFrame теперь по умолчанию выполняется на потоковом движке, что снижает требования к памяти на больших объемах данных. Для join, group_by, unpivot и ряда других операций порядок строк больше не гарантирован, если явно не указать настройку maintain_order=True. Перед обновлением стоит прогнать пайплайны и проверить, не полагались ли вы неявно на порядок.
В тот же день, 2 сентября, DuckDB заморозил набор функций для 2.0 и выпустил alpha-сборки. Один из самых заметных сдвигов — клиент-серверный режим: протокол Quack позволяет поднять DuckDB как сервер, к которому пишут несколько клиентов одновременно (раньше файл базы блокировался на одного писателя). Через новый CONNECT можно подключиться и к внешним Postgres/MySQL — запрос выполняется прямо на удалённой БД (pushdown), а не тащит таблицы целиком к себе.
В общем, сентябрь начинается бодро: потоковая обработка становится дефолтом, CDC добирается до Iceberg, а DuckDB расширяет привычную модель работы.