Predstavljeno je izdanje DuckDB 0.10.0 DBMS, koje kombinuje svojstva SQLite-a kao što su kompaktnost, mogućnost povezivanja u obliku ugrađene biblioteke, pohranjivanje baze podataka u jednu datoteku i pogodno CLI sučelje, s alatima i optimizacijama za izvršavanje analitički upiti koji pokrivaju značajan dio pohranjenih podataka, na primjer koji agregiraju cijeli sadržaj tablica ili spajaju nekoliko velikih tablica. Šifra projekta se distribuira pod MIT licencom. Razvoj je još uvijek u fazi formiranja eksperimentalnih izdanja, budući da format pohrane još nije stabiliziran i mijenja se od verzije do verzije.
DuckDB pruža napredni SQL dijalekt koji uključuje dodatne mogućnosti za rukovanje vrlo složenim i dugotrajnim upitima. Podržana je upotreba složenih tipova (nizovi, strukture, unije) i mogućnost izvršavanja proizvoljnih i ugniježđenih korelacijskih potupita. Podržava pokretanje više upita istovremeno, pokretanje upita direktno iz CSV i Parket datoteka. Moguć je uvoz iz PostgreSQL DBMS-a.
Pored shell koda iz SQLite-a, projekat koristi parser iz PostgreSQL-a u zasebnoj biblioteci, komponentu Date Math iz MonetDB-a, vlastitu implementaciju prozorskih funkcija (baziranu na algoritmu Segment Tree Aggregation), procesor regularnih izraza zasnovan na RE2 biblioteku, vlastiti optimizator upita i MVCC kontrolni mehanizam za istovremeno izvršavanje zadataka (Multi-Version Concurrency Control), kao i vektorizirani mehanizam za izvršavanje upita baziran na algoritmu Hyper-Pipelining Query Execution, koji omogućava velike skupove vrijednosti da se obrađuju odjednom u jednoj operaciji.
Među promjenama u novom izdanju:
- Performanse raščlanjivanja podataka u CSV formatu su značajno poboljšane. Na primjer, čitanje CSV datoteke sa 11 miliona redova u novoj verziji smanjeno je sa 2.6 sekundi. do 1.15 sekundi i izvođenje operacije “SELECT COUNT(*)” na vrhu CSV datoteke od 1.8 sekundi. do 0.3 sek.
- Dodata podrška za nizove fiksne veličine, koji liče na liste koje sadrže fiksni broj elemenata (“CREATE TABLE vectors(v DOUBLE[3]);”).
- Dodata podrška za povezivanje na MySQL, PostgreSQL i SQLite DBMS, što vam omogućava da učitate podatke iz eksternog DBMS-a u DuckDB i premjestite ih između različitih sistema. Eksternim bazama podataka se pristupa pomoću standardnih tabela. PRILOŽI 'postgres:dbname=postgresscanner' KAO postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
- Dodata podrška za izraz “COMMENT ON” za spremanje komentara o objektu u bazi podataka.
- Dodata podrška za izraz "COPY FROM DATABASE" za kopiranje cijelog sadržaja iz jedne baze podataka u drugu.
- Dodata podrška za modifikator "ALL" u izrazima EXCEPT i INTERSECT.
- Implementirani tip »
izvor: opennet.ru
