Välja on DuckDB andmebaasi versioon 0.10.0, mis ühendab SQLite omadused, nagu kompaktsus, võimalus ühenduda manustatud teeki, andmebaasi salvestamine ühte faili ja mugav CLI-liides, koos vahendite ja optimeeringutega analüütiliste päringute teostamiseks, mis katab olulise osa salvestatud andmetest, näiteks teostades kogu tabeli sisu agregatsiooni või ühendades mitu suurt tabelit. Projekti kood on kaitstud MIT litsentsiga. Arendus on endiselt eksperimentaalsete väljaannete etapis, kuna salvestusvorming pole veel stabiliseerunud ja muutub versioonide vahel.
DuckDB pakub laienenud SQL keele dialekti, mis sisaldab täiendavaid võimalusi väga keeruliste ja pikaajaliste päringute töötlemiseks. Toetatakse keeruliste tüüpide (massivid, struktuurid, ühendused) kasutamist ning võimalust teostada suvalisi ja pesastatud korreleerivaid alampäringuid. Samuti toetatakse mitme päringu samaaegset täitmist, päringute otse teostamist CSV ja Parquet formaadis failidest ning andmete 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.
Uue väljaande muudatused:
- Andmete analüüsi jõudlus CSV-formaadis on oluliselt paranenud. Näiteks CSV-faili lugemine, mis sisaldab 11 miljonit rida, on uues versioonis vähenenud 2,6 sekundilt 1,15 sekundile, ja "SELECT COUNT(*)" käitamine CSV-faili peal on vähenenud 1,8 sekundilt 0,3 sekundile.
- Lisatud on fikseeritud suurusega massiivide tugi, mis meenutab loendeid, mis sisaldavad kindlat arvu elemente ("CREATE TABLE vectors(v DOUBLE[3]);").
- Lisatud tugi MySQL, PostgreSQL ja SQLite andmebaasidega ühendamiseks, mis võimaldab DuckDB-sse laadida andmeid välismaandmebaasidest ning liigutada neid erinevate süsteemide vahel. Välistele andmebaasidele juurdepääs toimub tüüpiliste tabelite kaudu. ATTACH ‘postgres:dbname=postgresscanner’ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
- Lisatud tugi „COMMENT ON“ väljendile objekti kommentaaride salvestamiseks andmebaasis.
- Lisatud tugi „COPY FROM DATABASE“ väljendile, et kopeerida kogu sisu ühelt andmebaasilt teisele.
- Lisatud modifikaatori „ALL“ tugi EXCEPT ja INTERSECT väljenditele.
- Reaaliseeritud tüüp »
Allikas: opennet.ru
