PĂ€rast kuueaastast arendust on vĂ€lja antud DuckDB andmebaasi 1.0 versioon, mis positsioneerib end SQLite alternatiivina analĂŒĂŒtiliste pĂ€ringute jaoks. DuckDB ĂŒhendab SQLite omadused, nagu kompaktsus, vĂ”imalus integreerida selle teeki, andmebaasi salvestamine ĂŒhte faili ja mugav CLI-liides, ning pakub funktsioone ja optimeerimist analĂŒĂŒtiliste pĂ€ringute tĂ€itmiseks, mis katab olulise osa talletatud andmetest, nĂ€iteks kogu tabeli sisu agregatsioon vĂ”i mitme suure tabeli ĂŒhendamine. Projekti kood on kirjutatud C++ keeles ja selle levitamist reguleerib MIT litsents.
Versioon 1.0 on mÀÀratud projekti esimeseks stabiilseks vabastamiseks, mille ettevalmistamisel pöörati peamist tĂ€helepanu stabiilsuse suurendamisele, mitte funktsionaalsuse laiendamisele. Uues versioonis on ka fikseeritud andmete salvestamise formaadi mÀÀratlemine, mille jaoks tagatakse tagurpidi ĂŒhilduvus alates eelmisest vĂ€ljaandest. Tulevastes vĂ€ljaannetes kavatsevad arendajad uute vĂ”imaluste lisamisel olla ettevaatlikumad ning hoolitseda versioonide vahelise ĂŒhilduvuse ja SQL-i ning C API stabiliseerimise eest. Kui tulevikus on vajalik SQL-i semantika muutmine, teavitavad arendajad sellest eelnevalt ja pakuvad lahendusi olemasoleva koodi töövĂ”ime sĂ€ilitamiseks.
DuckDB toetab laiendatud SQL-i keele dialekti, mis sisaldab lisafunktsioone vĂ€ga keeruliste ja pikaajaliste pĂ€ringute töötlemiseks. NĂ€iteks on vĂ”imalik kasutada keerukaid tĂŒĂŒpe (massive, struktuurid, liidud) ning teostada suvalisi ja sisemiselt seotud alampĂ€ringuid. Samuti toetatakse mitme pĂ€ringu samasugust tĂ€itmist, pĂ€ringute tĂ€itmist otse CSV ja Parquet formaadis failidest. Toetatakse importimist PostgreSQL andmebaasidest.
Lisaks SQLite koodile kasutatakse projektis eraldi raamatukogusse vĂ€lja viidud PostgreSQLi parserit, MonetDB Date Math komponenti, oma akna funktsioonide teostust (Segment Tree Aggregation alusel), regulaaravaldiste töötlejat, mis pĂ”hineb RE2 raamatukogul, enda pĂ€ringute optimeerijat, MVCC-mehhanismi (Multi-Version Concurrency Control) samade ĂŒlesannete tĂ€itmise juhtimiseks ning vektoreeritud pĂ€ringute tĂ€itmise mootori, mis pĂ”hineb Hyper-Pipelining Query Execution algoritmil, vĂ”imaldades ĂŒhes operatsioonis korraga töödelda suuri vÀÀrtuste kogusid.
Allikas: opennet.ru
