Първият стабилен релиз на СУБД DuckDB

След шест години разработка, версия 1.0 на СУБД DuckDB е представена, позиционирана като аналог на SQLite за аналитични запитвания. DuckDB съчетава свойствата на SQLite, като компактен формат, възможност за свързване под формата на вградена библиотека, съхраняване на БД в един файл и удобен CLI интерфейс, с инструменти и оптимизации за изпълнение на аналитични запитвания, обхвануващи значителна част от съхраняваните данни, например, извършване на агрегация на цялото съдържание на таблици или обединение на няколко големи таблици. Кодът на проекта е написан на C++ и се разпространява под MIT лиценз.

Версия 1.0 е обозначена като първия стабилен релиз на проекта, при подготовката на който основното внимание е било фокусирано върху стабилността, а не върху увеличаване на функционалността. В новата версия е фиксиран форматът на съхранение на данни, за който от предишния релиз се осигурява обратна съвместимост. В следващите версии разработчиците планират по-внимателно да добавят нови възможности и да се грижат за запазване на съвместимостта между версиите, както и за стабилизация на SQL диалекта и C API. Ако в бъдеще е необходимо промяна на семантиката на SQL, разработчиците предварително ще публикуват предупреждение за предстоящите промени и ще предоставят обходни решения за запазване на функционалността на съществуващия код.

DuckDB поддържа разширен диалект на SQL, включващ допълнителни възможности за обработка на много сложни и продължително изпълнявани запитвания. Например, възможно е използването на сложни типове (масиви, структури, обединения), както и изпълнение на произволни и вложени корелиращи подзапитвания. Поддържа се едновременно изпълнение на няколко запитвания, изпълнение на запитвания директно от файлове в формат CSV и Parquet. Налична е поддръжка за импортиране от СУБД PostgreSQL.

В допълнение към кода на обвивката от SQLite, проектът използва отделно изнесен парсер от PostgreSQL, компонент Date Math от MonetDB, своя реализация на прозоречни функции (на базата на алгоритъма Segment Tree Aggregation), обработчик на регулярни изрази, основан на библиотеката RE2, собствен оптимизатор на запитвания, MVCC механизъм за управление на паралелното изпълнение на задачи (Multi-Version Concurrency Control), както и векторизиран двигател за изпълнение на запитвания на базата на алгоритъма Hyper-Pipelining Query Execution, позволяващ в една операция да се обработват големи набори от стойности.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster