Bemutatták a DuckDB 0.10.0 kiadását, amely ötvözi az SQLite olyan tulajdonságait, mint a kompaktitás, a beágyazott könyvtárként való csatlakozás képessége, az adatbázis egy fájlban való tárolása és a kényelmes CLI felület, valamint azok az eszközök és optimalizációk, amelyek lehetővé teszik analitikai lekérdezések végrehajtását, amelyek a tárolt adatok jelentős részét lefedik, például az összes táblázat tartalmának aggregálását vagy több nagy táblázat egyesítését. A projekt kódja MIT licenc alatt terjesztendő. A fejlesztés még kísérleti kiadások formálásának szakaszában van, mivel a tárolási formátum még nem stabilizálódott és verzióról verzióra változik.
A DuckDB egy kiterjesztett SQL nyelvdialektust kínál, amely további lehetőségeket tartalmaz nagyon összetett és hosszan futó lekérdezések feldolgozására. Támogatja a bonyolult típusok (tömbök, struktúrák, egyesítések) használatát, valamint a tetszőleges és beágyazott korrelált lekérdezések végrehajtásának lehetőségét. Támogatott a párhuzamos lekérdezés-végrehajtás, a lekérdezések közvetlen végrehajtása CSV és Parquet formátumú fájlokból, és van lehetőség importálásra PostgreSQL adatbázisokból.
A projekt az SQLite-ból származó shell kód mellett egy külön könyvtárba helyezett PostgreSQL parser-t, a MonetDB-ből származó Date Math komponenst, saját megvalósítású ablakos funkciókat (a Segment Tree Aggregation algoritmus alapján), az RE2 könyvtáron alapuló reguláris kifejezések feldolgozóját, egyedi lekérdezés-optimalizálót, egy MVCC mechanizmust a párhuzamos végrehajtás irányítására (Multi-Version Concurrency Control), valamint egy hyper-pipelining lekérdezés-végrehajtó algoritmusra épülő vektorizált végrehajtó motort alkalmaz, amely lehetővé teszi, hogy egy művelet során nagyméretű értékhalmazokat egyszerre kezeljen.
A legújabb verzióban bekövetkezett változások:
- Jelentősen megnövelték a CSV formátumú adatok feldolgozásának teljesítményét. Például egy 11 millió soros CSV fájl olvasása az új verzióban 2,6 másodpercről 1,15 másodpercre csökkent, míg a "SELECT COUNT(*)" művelet végrehajtása egy CSV fájl felett 1,8 másodpercről 0,3 másodpercre csökkent.
- Hozzáadták a fix méretű tömbök támogatását, amelyek hasonlítanak a listákra, fix számú elemet tartalmazva ("CREATE TABLE vectors(v DOUBLE[3]);").
- Hozzáadva a MySQL, PostgreSQL és SQLite adatbázisokhoz való csatlakozás támogatása, amely lehetővé teszi az adatok DuckDB-be történő betöltését külső adatbázisokból és azok áthelyezését különböző rendszerek között. A külső adatbázisokkal való kapcsolat típikus táblák használatával valósul meg. ATTACH ‘postgres:dbname=postgresscanner’ AS postgres; SELECT title, release_year, length FROM postgres.film LIMIT 5;
- Hozzáadva a ‘COMMENT ON’ kifejezés támogatása az objektumra vonatkozó megjegyzés tárolásához az adatbázisban.
- Hozzáadva a ‘COPY FROM DATABASE’ kifejezés támogatása az összes tartalom átmásolásához egyik adatbázisból a másikba.
- Hozzáadva az ‘ALL’ módosító támogatása az EXCEPT és INTERSECT kifejezésekben.
- Megvalósítva a » típus.
Forrás: opennet.ru
