Объявлено о запуске новая версия DuckDB 0.9.0 с кодовым названием «Undulata» в честь желтоклювой утки, обитающей в Африке. Новая редакция выделяется тем, что включает в себя хеширование вне ядра, улучшения производительности агрегатов хэша, улучшения производительности и многое другое.
УткаДБ объединить свойства SQLite такие как компактность, возможность подключения в виде интегрированной библиотеки, хранение БД в одном файле и удобный CLI-интерфейс, с инструментами и оптимизациями для выполнения аналитических запросов, покрывающих значительную часть хранимых данных, например, которые выполняют агрегацию всего содержимого таблицы или объединяют несколько больших таблиц.
Основные новые возможности DuckDB 0.9.0 «Undulata»
Одной из главных новых особенностей новой версии DuckDB 0.9.0, пожалуй, является улучшение производительности за счет хеширования Out-Of-Core, так как теперь при добавлении больших наборов данных при обработке запросов. Упоминается, что, используя механизм потокового выполнения и диспетчер буферов, DuckDB поддерживает множество операций с наборами данных, которые превышают объем памяти.
В этой версии поддержка разгрузки диска еще более расширена за счет поддержки внешних хеш-агрегатов. Что решает проблему прекращения операции из-за нехватки памяти в ситуациях, когда данные, используемые для добавления хеш-таблицы, не помещаются в ОЗУ.
Еще одна примечательная новинка заключается в том, что поддержка сжатия строк и числовых типов целые числа непосредственно перед тем, как данные поступают в групповые операторы сортировки и агрегирования, что значительно снижает потребление памяти.
Помимо этого, мы также можем найти автоматическая загрузка доверенных расширений и будет дополнительно установлен при использовании в запросе. Упоминается, что набор расширений автозагрузки ограничен официальными расширениями, распространяемыми DuckDB Labs.
Кстати о расширениях, в DuckDB 0.9.0 «Undulata» также есть плагин для AWS который предоставляет возможности, использующие AWS SDK. Это расширение содержит функцию «LOAD_AWS_CREDENTIALS», которая используется AWS для автоматического получения и настройки учетных данных.
Также в этой версии добавлено поддержка загружаемых расширений DuckDB-WASM. Раньше любое расширение, которое вы хотели использовать с клиентом WASM, необходимо было интегрировать. В этой версии расширения можно загружать динамически. При загрузке расширения загружается пакет WASM и функциональность расширения включается.
Из других изменений которые выделяются из этой новой версии:
- Включена автоматическая очистка целых групп строк при выполнении операции DELETE. Возможность усечения файла базы данных (уменьшения его размера) после удаления данных реализована также в том случае, если удаляемые группы строк находились в конце файла.
- Повышена эффективность хранения индексов ART, используемых для проверки уникальности первичных и внешних ключей. Например, по сравнению с предыдущей версией размер тестового индекса уменьшился с 278 МБ до 78 МБ.
- Исправить регрессию и исправить механизм ластика
- Исправлена ошибка сегментации при добавлении данных списка.
- ART-тестирование и рефакторинг тестов
- Увеличен лимит памяти в тесте, чтобы избежать недетерминированных сбоев микросхемы.
- Добавлен экспериментальный плагин для чтения данных из хранилища Azure. Это расширение позволяет DuckDB естественным образом читать данные, хранящиеся в Azure, аналогично тому, как он может читать данные, хранящиеся в S3.
- Настройка Jemalloc, а также распределителя буфера и удаление избыточной копии строки в словаре паркета.
- Клиент добавил экспериментальную поддержку API PySpark.
- Добавлен экспериментальный плагин для чтения таблиц в формате Apache Iceberg.
- Юлия обновилась до 0.8.1
- Добавлен conn.interrupt() в API Python DuckDB.
- Исправлена замена параметров регрессии x/y.
наконец, если вы интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.