PĂ€rast kuueaastast arendust on vĂ€lja antud DuckDB andmebaasihalduri 1.0 versioon, mis on positsioneeritud SQLite variandina analĂŒĂŒtiliste pĂ€ringute jaoks. DuckDB ĂŒhendab sellised SQLite omadused nagu kompaktsus, vĂ”imalus integreerida teeki, andmebaasi salvestamine ĂŒhes failis ja mugav CLI-liides, koos vahendite ja optimeerimistega, et teostada analĂŒĂŒtilisi pĂ€ringuid, mis katavad mĂ€rkimisvÀÀrse osa salvestatud andmetest, nĂ€iteks tĂ€iendavad kogumisi tabelite kogu sisust vĂ”i ĂŒhendavad mitut suurt tabelit. Projekti kood on kirjutatud C++ keeles ja levitatakse MIT litsentsi alusel.
Versioon 1.0 mĂ€rgib projekti esimest stabiilset vĂ€ljaannet, mille ettevalmistamisel pöörati peamist tĂ€helepanu stabiilsuse suurendamisele, mitte funktsionaalsuse laiendamisele. Uues versioonis on fikseeritud andmete salvestamise formati, mille suhtes tagatakse tagurpidi ĂŒhilduvus alates eelmisest vĂ€ljaandest. Edaspidistes vĂ€ljaannetes kavatsevad arendajad uute funktsioonide lisamisel hoolikamalt lĂ€heneda ning hoolitseda vĂ€ljaannete vahelise ĂŒhilduvuse, samuti SQL ja C API dialekti stabiliseerimise ĂŒle. Kui tulevikus on vaja SQL semantikat muuta, avaldavad arendajad eelnevalt hoiatuse tulevaste muudatuste kohta ja pakuvad lahendusi olemasoleva koodi toimimise sĂ€ilitamiseks.
DuckDB toetab laiendatud SQL keele dialekti, mis sisaldab lisavĂ”imalusi vĂ€ga keeruliste ja pikaajaliste pĂ€ringute töötlemiseks. NĂ€iteks on vĂ”imalik kasutada keerulisi tĂŒĂŒpe (massiiivid, struktuurid, ĂŒhendused) ning teostada suvalisi ja sisse-vĂ€ljendatud korreleerivaid alam-pĂ€ringuid. Toetatakse mitme pĂ€ringu samaaegset tĂ€itmist, pĂ€ringute tĂ€itmist otse CSV ja Parquet formaadis failidest. Saadaolev on ka impordi tugi PostgreSQL andmebaasihaldurist.
Lisaks SQLite shell-koodile kasutab projekt PostgreSQL-st eraldi vĂ€lja tĂ”stetud parserit, MonetDB Date Math komponenti, oma realiseeringut aknafunktsioonidest (Segment Tree Aggregation algoritmi pĂ”hjal), regulaaravaldiste töötlemise vahendit, mis pĂ”hineb RE2 raamatukogul, oma pĂ€ringute optimeerijat, MVCC mehhanismi (Multi-Version Concurrency Control) ĂŒheaegsete ĂŒlesannete haldamiseks ning vektorkiidustatud pĂ€ringute tĂ€itmise mootorit Hyper-Pipelining Query Execution algoritmi pĂ”hjal, mis vĂ”imaldab ĂŒhes operatsioonis korraga töödelda suurtes kogustes vÀÀrtusi.
Allikas: opennet.ru
