Predstavljen je izlazak sustava DuckDB 0.10.0, koji kombinira svojstva SQLite-a kao što su kompaktnost, mogućnost povezivanja u obliku ugrađene biblioteke, pohrana baze podataka u jednoj datoteci i praktično CLI sučelje, s alatima i optimizacijama za izvođenje analitičkih upita koji pokrivaju značajan dio pohranjenih podataka, kao što su agregiranje cijelog sadržaja tablica ili spajanje nekoliko velikih tablica. Kod projekta distribuira se pod MIT licencom. Razvoj je još uvijek u fazi eksperimentalnih izdanja, jer format pohrane još nije stabiliziran i promjena je od verzije do verzije.
DuckDB nudi prošireni dijalekt SQL jezika, uključujući dodatne mogućnosti za obradu vrlo složenih i dugotrajnih upita. Podržava upotrebu složenih tipova (nizovi, strukture, unije) i mogućnost izvršavanja proizvoljnih i ugniježdenih koreliranih podupita. Podržava istovremeno izvršavanje više upita, izvođenje upita izravno iz datoteka u CSV i Parquet formatu. Postoji mogućnost uvoza iz PostgreSQL Sustava za upravljanje bazama podataka.
Osim koda ljuske iz SQLite-a, projekt koristi parser izdvojen u posebnoj biblioteci iz PostgreSQL-a, komponentu Date Math iz MonetDB-a, vlastitu implementaciju prozorskih funkcija (na temelju algoritma Segment Tree Aggregation), obrada regularnih izraza temeljenih na biblioteci RE2, vlastiti optimizator upita, MVCC mehanizam upravljanja istovremenim izvršavanjem zadataka (Multi-Version Concurrency Control), kao i vektorizirani motor za izvođenje upita na temelju algoritma Hyper-Pipelining Query Execution, koji omogućuje u jednoj operaciji da istovremeno obradi velike skupove vrijednosti.
Među promjenama u novom izdanju:
- Značajno je povećana učinkovitost parsiranja podataka u CSV formatu. Na primjer, čitanje CSV datoteke s 11 milijuna redaka u novoj verziji skraćeno je s 2.6 sekundi na 1.15 sekundi, dok je izvršavanje operacije „SELECT COUNT(*)” iznad CSV datoteke skraćeno s 1.8 sekundi na 0.3 sekundi.
- Dodana je podrška za nizove fiksne veličine, koji nalikuju popisima koji sadrže fiksni broj elemenata („CREATE TABLE vectors(v DOUBLE[3]);”).
- Dodana je podrška za povezivanje s bazama podataka MySQL, PostgreSQL i SQLite, što omogućuje učitavanje podataka iz vanjskih baza podataka u DuckDB i njihovo premještanje između različitih sustava. Pristup vanjskim bazama podataka ostvaruje se pomoću standardnih tablica. ATTACH 'postgres:dbname=postgresscanner' AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
- Dodana je podrška za izraz 'COMMENT ON' za spremanje komentara o objektu u bazi podataka.
- Dodana je podrška za izraz 'COPY FROM DATABASE' za kopiranje cijelog sadržaja iz jedne baze podataka u drugu.
- Dodana je podrška za modifikator 'ALL' u izrazima EXCEPT i INTERSECT.
- Implementiran je tip »
Izvor: opennet.ru
