DuckDB 0.6.0 è stato ora rilasciato e include miglioramenti alla scrittura su disco, al caricamento dei dati e altro ancora.

DuckDB, il DBMS utilizzato da Google, Facebook e Airbnb

DuckDB è un sistema di gestione di database SQL OLAP in divenire

Annunciato il rilascio della nuova versione del DBMS DuckDB 0.6.0, versione in cui la compressione dei dati è stata migliorata, oltre al fatto che sono state aggiunte nuove funzioni, nonché miglioramenti dello spazio di archiviazione, tra le altre cose.

DuckDB combinare le proprietà SQLite come la compattezza, la possibilità di connettersi sotto forma di libreria integrata, l'archiviazione del database in un unico file e una comoda interfaccia CLI, con strumenti e ottimizzazioni per l'esecuzione di query analitiche che coprono una parte significativa dei dati archiviati, ad esempio , che eseguono l'aggregazione di tutti i contenuti della tabella o uniscono più tabelle di grandi dimensioni.

Principali novità di DuckDB 0.6.0

In questa nuova versione che viene presentata, si evidenzia che sono proseguite le attività di miglioramento del formato di archiviazione, a parte quello è stata implementata una modalità di scrittura su disco, dove quando un set di dati di grandi dimensioni viene caricato in una transazione, i dati vengono compressi e trasmessi a un file dal database senza attendere il comando COMMIT per eseguire il commit della transazione.

Un altro dei cambiamenti che si distingue nella nuova versione è quello aggiunto il supporto per il caricamento parallelo dei dati in tabelle separate, che può aumentare significativamente la velocità di caricamento sui sistemi multicore. Ad esempio, nella vecchia versione, il caricamento di un database con 150 milioni di righe su una CPU a 10 core richiedeva 91 secondi e nella nuova versione questa operazione richiede 17 secondi. Esistono due modalità di caricamento parallelo: con conservazione dell'ordine record e senza conservazione dell'ordine.

Per la compressione dei dati viene utilizzato l'algoritmo FSST (Static Symbols Quick Table), che consente di impacchettare i dati all'interno delle righe utilizzando un dizionario comune di corrispondenze di tipo. L'applicazione del nuovo algoritmo ha permesso di ridurre la dimensione del database di test da 761 MB a 251 MB.

Per comprimere i numeri (DOUBLE e FLOAT) vengono proposti gli algoritmi Chimp e Patas. Rispetto al precedente algoritmo Gorillas, Chimp fornisce un livello di compressione più elevato e una decompressione più rapida. L'algoritmo Patas è in ritardo rispetto a Chimp in termini di compressione, ma è significativamente più veloce nella velocità di decompressione, che è più o meno la stessa della lettura di dati non compressi.

Si segnala inoltre che è stato aggiunto una capacità sperimentale di caricare dati da file CSV in più flussi paralleli (SET Experimental_parallel_csv=true), che riduce significativamente il tempo di caricamento per i file CSV di grandi dimensioni. Ad esempio, quando l'opzione è stata abilitata, il tempo di download per un file CSV da 720 MB è stato ridotto da 3,5 secondi a 0,6 secondi.

Delle altre modifiche che si distinguono da questa nuova versione:

  • È stata implementata la possibilità di esecuzione parallela delle operazioni di creazione e gestione dell'indice.
  • SQL offre la possibilità di formare query che iniziano con la parola "FROM" anziché "SELECT". In questo caso, si presuppone che la query inizi con "SELECT *".
  • Aggiunto il supporto per l'espressione "COLUMNS" in SQL, che consente di eseguire un'operazione su più colonne senza duplicare l'espressione.
  • Consumo di memoria ottimizzato. Per impostazione predefinita sulla piattaforma Linux, la libreria jemalloc viene utilizzata per la gestione della memoria. Prestazioni notevolmente migliorate delle operazioni di unione hash quando la memoria è limitata.
  • Aggiunta la modalità di output ".mode duckbox" alla CLI, scartando le colonne centrali in base alla larghezza delle linee della finestra del terminale). Con il parametro ".maxrows X", puoi anche limitare il numero di righe di output.
  • La CLI fornisce il completamento automatico dell'input sensibile al contesto (l'input di parole chiave, nomi di tabelle, funzioni, nomi di colonne e nomi di file è completato).
  • La CLI è abilitata per impostazione predefinita a visualizzare un indicatore di avanzamento della query.

finalmente se lo sei interessati a saperne di più, puoi controllare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.