După șase ani de dezvoltare, a fost lansată versiunea 1.0 a SGBD-ului DuckDB, poziționată ca o alternativă la SQLite pentru interogări analitice. DuckDB combină proprietățile SQLite, cum ar fi compactitatea, capacitatea de conectare sub formă de bibliotecă încorporată, stocarea bazelor de date într-un singur fișier și un CLI prietenos cu instrumente și optimizări pentru executarea interogărilor analitice care acoperă o parte semnificativă din datele stocate, de exemplu, efectuarea de agregări asupra întregului conținut al tabelului sau combinarea mai multor tabele mari. Codul proiectului este scris în C++ și este distribuit sub licența MIT.
Versiunea 1.0 este marcată ca prima lansare stabilă a proiectului, în pregătirea căreia s-a acordat o atenție deosebită creșterii stabilității, nu extinderii funcționalității. În noua versiune, de asemenea, este consolidată fixarea formatului de stocare a datelor, pentru care, începând cu lansarea precedentă, se asigură compatibilitate înapoi. În versiunile următoare, dezvoltatorii intenționează să fie mai prudenți în ceea ce privește adăugarea de noi funcționalități și să se ocupe de menținerea compatibilității între lansări, precum și stabilizarea dialectului SQL și a API-ului C. Dacă va fi necesară o modificare a semanticii SQL în viitor, dezvoltatorii vor publica un avertisment prealabil despre schimbările imminente și vor oferi soluții alternative pentru a menține funcționalitatea codului existent.
DuckDB suportă un dialect extins al limbajului SQL, incluzând funcționalități suplimentare pentru procesarea interogărilor foarte complexe și de lungă durată. De exemplu, este posibilă utilizarea unor tipuri complexe (array-uri, structuri, uniuni), precum și executarea de subinterogări corelate arbitrare și încastrate. Se suportă executarea simultană a mai multor interogări, executarea interogărilor direct din fișiere în format CSV și Parquet. Este disponibil suport pentru importul din SGBD-ul PostgreSQL.
Pe lângă codul shell din SQLite, proiectul folosește un parser separat din PostgreSQL, componenta Date Math din MonetDB, o implementare proprie a funcțiilor de feronieră (bazată pe algoritmul Segment Tree Aggregation), un procesor de expresii regulate bazat pe biblioteca RE2, un optimizator de interogări propriu, un mecanism MVCC pentru gestionarea execuției simultane a sarcinilor (Controlul Concurenței pe Versiuni Multiple), precum și un motor vectorizat de execuție a interogărilor bazat pe algoritmul Hyper-Pipelining Query Execution, care permite procesarea rapidă a seturilor mari de valori într-o singură operațiune.
Sursa: opennet.ro
