Pas gjashtë vitesh zhvillimi u prezantua versioni i DBMS DuckDB 1.0, i pozicionuar si një alternativë për SQLite për kërkesa analitike. DuckDB kombinon karakteristikat e SQLite, si kompaktësia, mundësia e lidhjes në formën e një bibloteke të integruar, ruajtja e DB në një skedar të vetëm dhe një ndërfaqe CLI të lehtë për përdorim, me mjete dhe optimizime për kryerjen e kërkesave analitike që mbulojnë një pjesë të konsiderueshme të të dhënave të ruajtura, për shembull, duke realizuar agregimin e tërë përmbajtjes së tabelave ose bashkimin e disa tabelave të mëdha. Kodi i projektit është shkruar në gjuhën C++ dhe shpërndahet nën licencën MIT.
Versioni 1.0 është shpallur si lëshimi i parë stabil i projektit, në përgatitjen e të cilit u fokusua kryesisht stabiliteti, jo funksionaliteti. Në këtë version është gjithashtu konfirmuar formati i ruajtjes së të dhënave, për të cilin nga lëshimi i kaluar është siguruar përputhshmëria pasuese. Në lëshimet e ardhshme, zhvilluesit kanë ndërmend të jenë më të kujdesshëm në shtimin e mundësive të reja dhe të kujdesen për ruajtjen e përputhshmërisë mes lëshimeve, si dhe të stabilizojnë dialektin SQL dhe API-në C. Nëse në të ardhmen do të kërkohet ndryshimi i semantikës SQL, zhvilluesit do të publikojnë paraprakisht një njoftim për ndryshimet në pritje dhe do të ofrojnë mënyra alternative për të siguruar funksionalitetin e kodit ekzistues.
DuckDB mbështet një dialekt të zgjeruar të gjuhës SQL, duke përfshirë mundësi të shtesë për përpunimin e pyetjeve të komplikuara dhe me zgjatje të gjatë. Për shembull, është e mundur përdorimi i tipeve komplekse (array, struktura, bashkime), si dhe ekzekutimi i nënpyetjeve të korrelacionuara të rastësishme dhe të paluajtshme. Mbështetet ekzekutimi i shumë pyetjeve njëkohësisht, ekzekutimi i pyetjeve drejtpërdrejt nga skedarë në formatin CSV dhe Parquet. Disponohet mbështetje për importin nga DBMS PostgreSQL.
Përveç kodit të shell-it nga SQLite, projekti përdor parser-in e hequr në një bibliotekë të veçantë nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e tij të funksioneve mendore (të bazuar në algoritmin Segment Tree Aggregation), përpunuesin e shprehjeve të rregullta të bazuar në bibliotekën RE2, optimizuesin e pyetjeve, mekanizmin MVCC për menaxhimin e ekzekutimit të shumëfishtë të detyrave (Kontrolli i Konkurrenceve me Versions të Shumta), si dhe motorin vektorizues të ekzekutimit të pyetjeve të bazuar në algoritmin Hyper-Pipelining Query Execution, i cili lejon të përpunoni grupe të mëdha vlerash në një operacion.
Burimi: opennet.ru
