Lansohet versioni i DBMS DuckDB 0.10.0, i cili kombinon tipare të SQLite, si kompaktësia, mundësia e lidhjes si një bibliotekë e integruar, ruajtja e DB në një skedar dhe një ndërfaqe CLI të lehtë për t'u përdorur, me mjete dhe optimizime për ekzekutimin e kërkesave analitike që mbulojnë një pjesë të konsiderueshme të të dhënave të ruajtura, për shembull, duke realizuar agregimin e përmbajtjes së tabelave ose duke bashkuar disa tabela të mëdha. Kodi i projektit shpërndahet nën licencën MIT. Zhvillimi është ende në fazën e formimit të lëshimeve eksperimentale, pasi formati i ruajtjes nuk është stabilizuar ende dhe ndryshon nga versioni në version.
DuckDB ofron një dialekt të avancuar të gjuhës SQL, duke përfshirë mundësi shtesë për përpunimin e pyetjeve shumë të komplikuara dhe me kohëzgjatje të gjatë. Përdorimi i llojeve të ndërlikuara (array, struktura, bashkime) mbështetet dhe është e mundur të kryhen nënpyetje korrelative të rastësishme dhe të thella. Mbështetet ekzekutimi i disa pyetjeve njëherësh, ekzekutimi i pyetjeve direkt nga skedarë në formatin CSV dhe Parquet. Ka mundësi importimi nga SGBD PostgreSQL.
Përveç kodit bazë nga SQLite, projekti përdor edhe një parser të veçuar në një bibliotekë më vete nga PostgreSQL, komponentin Date Math nga MonetDB, implementimin e vet të funksioneve të dritares (mbi bazën e algoritmit Segment Tree Aggregation), një përpunues të shprehjeve të rregullta të ndërtuar mbi bibliotekën RE2, optimizuesin e vet të kërkesave, mekanizmin MVCC për menaxhimin e ekzekutimit të njëkohshëm të detyrave (Multi-Version Concurrency Control), si dhe një engine të vektorizuar për ekzekutimin e kërkesave, i bazuar në algoritmin Hyper-Pipelining Query Execution, që mundëson përpunimin e menjëhershëm të grupeve të mëdha të vlerave brenda një operacioni të vetëm.
Mes ndryshimeve në versionin e ri:
- Performanca e analizës së të dhënave në formatin CSV është rritur ndjeshëm. Për shembull, leximi i një skedari CSV me 11 milion rreshta në versionin e ri ka rënë nga 2.6 sekonda në 1.15 sekonda, ndërsa ekzekutimi i operacionit 'SELECT COUNT(*)' mbi skedarin CSV ka rënë nga 1.8 sekonda në 0.3 sekonda.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r array-t me pĂ«rmasĂ« tĂ« rregullt, tĂ« cilat ngjajnĂ« me lista qĂ« pĂ«rmbajnĂ« njĂ« numĂ«r fikse elementesh ('CREATE TABLE vectors(v DOUBLE[3]);').
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r lidhjen me DBMS MySQL, PostgreSQL dhe SQLite, e cila lejon ngarkimin e tĂ« dhĂ«nave nĂ« DuckDB nga DBMS tĂ« jashtme dhe transferimin e tyre midis sistemeve tĂ« ndryshme. Qasja nĂ« DB tĂ« jashtme bĂ«het duke pĂ«rdorur tabela tipike. ATTACH âpostgres:dbname=postgresscannerâ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r shprehjen 'COMMENT ON' pĂ«r tĂ« ruajtur njĂ« koment mbi njĂ« objekt nĂ« DB.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r shprehjen 'COPY FROM DATABASE' pĂ«r tĂ« kopjuar tĂ« gjithĂ« pĂ«rmbajtjen nga njĂ« DB nĂ« njĂ« tjetĂ«r.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r modifikuesin 'ALL' nĂ« shprehjet EXCEPT dhe INTERSECT.
- ĂshtĂ« realizuar tipi '
Burimi: opennet.ru
