Utgivelsen av den nye versjonen av DBMS ble annonsert DuckDB 0.6.0, versjon der datakomprimering er forbedret, i tillegg til at nye funksjoner er lagt til, samt lagringsforbedringer, blant annet.
DuckDB kombinere SQLite-egenskaper som kompakthet, muligheten til å koble til i form av et integrert bibliotek, lagring av databasen i en enkelt fil og et praktisk CLI-grensesnitt, med verktøy og optimaliseringer for å utføre analytiske spørringer som dekker en betydelig del av de lagrede dataene, for eksempel , som utfører aggregering av alt tabellinnhold eller slår sammen flere store tabeller.
De viktigste nye funksjonene i DuckDB 0.6.0
I denne nye versjonen som presenteres er det fremhevet at arbeidet fortsatte med å forbedre lagringsformatet, utenom det en diskskrivemodus er implementert, der når et stort datasett lastes inn i en transaksjon, blir dataene komprimert og strømmet til en fil fra databasen uten å vente på at COMMIT-kommandoen skal utføre transaksjonen.
En annen av endringene som skiller seg ut i den nye versjonen er at lagt til støtte for parallell lasting av data i separate tabeller, som kan øke lastehastigheten betydelig på flerkjernesystemer. For eksempel, i den gamle versjonen tok det 150 sekunder å laste en database med 10 millioner rader på en 91-kjerners CPU, og i den nye versjonen tar denne operasjonen 17 sekunder. Det er to moduser for parallell lasting: med rekordbevaring og uten ordrebevaring.
For datakomprimering brukes FSST-algoritmen (Static Symbols Quick Table), som lar deg pakke data innenfor rader ved å bruke en vanlig ordbok med typetreff. Bruken av den nye algoritmen tillot å redusere størrelsen på testdatabasen fra 761 MB til 251 MB.
For å komprimere tall (DOUBLE og FLOAT) foreslås Chimp og Patas-algoritmene. Sammenlignet med den forrige Gorillas-algoritmen, gir Chimp et høyere nivå av komprimering og raskere dekompresjon. Patas-algoritmen henger etter Chimp når det gjelder komprimering, men er betydelig raskere i dekompresjonshastighet, noe som er omtrent det samme som å lese ukomprimerte data.
Det bemerkes også at den ble lagt til en eksperimentell evne til å laste data fra CSV-filer i flere parallelle strømmer (SET experimental_parallel_csv=true), noe som reduserer lastetiden betydelig for store CSV-filer. For eksempel, når alternativet var aktivert, ble nedlastingstiden for en 720 MB CSV-fil redusert fra 3,5 sekunder til 0,6 sekunder.
Av de andre endringene som skiller seg ut fra denne nye versjonen:
- Muligheten for parallell utførelse av indeksoppretting og forvaltningsoperasjoner er implementert.
- SQL gir muligheten til å lage spørringer som starter med ordet "FROM" i stedet for "SELECT". I dette tilfellet antas søket å starte med "SELECT *".
- Lagt til støtte for "COLUMNS"-uttrykket i SQL, slik at du kan utføre en operasjon på flere kolonner uten å duplisere uttrykket.
- Optimalisert minneforbruk. Som standard på Linux-plattformen brukes jemalloc-biblioteket til minneadministrasjon. Betydelig forbedret ytelse for hash-sammenslåingsoperasjoner når minnet er begrenset.
- Lagt til ".mode duckbox"-utgangsmodus til CLI, og forkastet midtkolonner basert på linjebredden til terminalvinduet). Med parameteren ".maxrows X" kan du også begrense antall utgangsrader.
- CLI gir kontekstbevisst inndata autofullføring (søkeord, tabellnavn, funksjoner, kolonnenavn og filnavn er fullført).
- CLI er aktivert som standard for å vise en fremdriftsindikator for spørringen.
endelig hvis du er det interessert i å vite mer om det, kan du sjekke detaljene I den følgende lenken.