Bylo oznámeno vydání nové verze DBMS DuckDB 0.6.0verze, ve které komprese dat byla vylepšena, navíc přibyly nové funkce a mimo jiné i vylepšení úložiště.
DuckDB kombinovat vlastnosti SQLite jako je kompaktnost, možnost připojení ve formě integrované knihovny, uložení databáze do jednoho souboru a pohodlné rozhraní CLI s nástroji a optimalizacemi pro provádění analytických dotazů pokrývajících významnou část uložených dat, např. které provádějí agregaci veškerého obsahu tabulky nebo slučují více velkých tabulek.
Hlavní nové funkce DuckDB 0.6.0
V této nové verzi, která je prezentována, je to zdůrazněno pokračovaly práce na vylepšení formátu úložiště, kromě toho byl implementován režim zápisu na disk, kde při načtení velkého souboru dat v jedné transakci jsou data komprimována a streamována do souboru z databáze bez čekání na příkaz COMMIT k potvrzení transakce.
Další ze změn, která v nové verzi vyniká, je ta přidána podpora pro paralelní načítání dat do samostatných tabulek, což může výrazně zvýšit rychlost načítání na vícejádrových systémech. Například ve staré verzi trvalo načítání databáze se 150 miliony řádků na 10jádrovém CPU 91 sekund a v nové verzi tato operace trvá 17 sekund. Existují dva režimy paralelního načítání: s uchováním pořadí záznamů a bez uchování pořadí.
Pro kompresi dat se používá algoritmus FSST (Rychlá tabulka statických symbolů), která umožňuje sbalit data do řádků pomocí běžného slovníku shod typů. Aplikace nového algoritmu umožnila snížit velikost testovací databáze ze 761 MB na 251 MB.
Pro kompresi čísel (DOUBLE a FLOAT) jsou navrženy algoritmy Chimp a Patas. Ve srovnání s předchozím algoritmem Gorillas poskytuje Chimp vyšší úroveň komprese a rychlejší dekompresi. Algoritmus Patas zaostává za Chimpem, pokud jde o kompresi, ale je výrazně rychlejší v rychlosti dekomprese, což je přibližně stejné jako při čtení nekomprimovaných dat.
Také vyniká, že byl přidán experimentální schopnost načítat data ze souborů CSV v několika paralelních proudech (SET experimental_parallel_csv=true), což výrazně zkracuje dobu načítání velkých souborů CSV. Například, když byla tato možnost povolena, doba stahování souboru CSV o velikosti 720 MB se zkrátila z 3,5 sekundy na 0,6 sekundy.
Z dalších změn které vyčnívají z této nové verze:
- Byla implementována možnost paralelního provádění operací vytváření a správy indexů.
- SQL poskytuje možnost tvořit dotazy, které začínají slovem "FROM" namísto "SELECT". V tomto případě se předpokládá, že dotaz začíná "SELECT *".
- Přidána podpora pro výraz "COLUMNS" v SQL, což vám umožňuje provádět operaci s více sloupci bez duplikace výrazu.
- Optimalizovaná spotřeba paměti. Ve výchozím nastavení na platformě Linux se pro správu paměti používá knihovna jemalloc. Výrazně zlepšený výkon operací sloučení hash při omezené paměti.
- Přidán výstupní režim ".mode duckbox" do CLI, vyřazení středových sloupců na základě šířky řádků okna terminálu). Pomocí parametru ".maxrows X" můžete také omezit počet výstupních řádků.
- CLI poskytuje kontextové automatické doplňování vstupu (je dokončeno zadávání klíčových slov, názvů tabulek, funkcí, názvů sloupců a názvů souborů).
- CLI je standardně povoleno pro zobrazení indikátoru průběhu dotazu.
konečně jestli jsi zájem dozvědět se o tom více, můžete zkontrolovat podrobnosti Na následujícím odkazu.