Ricerca nel sito web

zstd: un algoritmo di compressione dati veloce utilizzato da Facebook


Zstandard (noto anche come zstd) è un programma di compressione dati in tempo reale veloce e open source gratuito con rapporti di compressione migliori, sviluppato da Facebook. È un algoritmo di compressione senza perdita di dati scritto in C (c'è una reimplementazione in Java) – è quindi un programma Linux nativo.

Leggi anche: 10 esempi di comandi 7zip (compressione dati) in Linux

Se necessario, può scambiare la velocità di compressione con rapporti di compressione più forti (il compromesso tra velocità di compressione e rapporto di compressione può essere configurato con piccoli incrementi), viceversa. Dispone di una modalità speciale per la compressione di piccoli dati, nota come compressione del dizionario, e può creare dizionari da qualsiasi set di campioni fornito. Viene fornito con un'utilità a riga di comando per creare e decodificare .zst, .gz, .xz e .lz4 File.

È importante sottolineare che Zstandard ha una ricca raccolta di API, supporta quasi tutti i linguaggi di programmazione più diffusi tra cui Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft e molti altri.

Viene utilizzato attivamente per comprimere grandi volumi di dati in più formati e casi d'uso in Facebook; servizi come il data warehousing Amazon Redshift; database come Hadoop e Redis; la rete Tor e molte altre applicazioni inclusi i giochi.

I seguenti risultati sono ottenuti eseguendo diversi test rapidi di algoritmi di compressione su un server che esegue Linux Debian utilizzando lzbench, uno strumento di benchmark in memoria open source.

Come installare lo strumento di compressione Zstandard in Linux

Per installare Zstandard su una distribuzione Linux, devi compilarlo dai sorgenti, ma prima devi installare gli strumenti di sviluppo necessari sul tuo sistema utilizzando il gestore dei pacchetti della distribuzione come mostrato.

sudo apt update && sudo apt install build-essential		#Ubuntu/Debian
yum group install "Development Tools" 			#CentOS/REHL
dnf groupinstall "C Development Tools and Libraries"		#Fedora 22+

Una volta installati tutti gli strumenti di sviluppo necessari, ora puoi scaricare il pacchetto sorgente, spostarti nella directory del repository locale, creare il file binario e installarlo come mostrato.

cd ~/Downloads
git clone https://github.com/facebook/zstd.git
cd zstd
make
sudo make install 

Una volta installato Zstandard, ora possiamo andare oltre per apprendere alcuni esempi di utilizzo di base degli esempi di comandi Zstd nella sezione seguente.

Scopri 10 esempi di utilizzo del comando Zstd in Linux

La sintassi della riga di comando di Zstd è generalmente simile a quella degli strumenti gzip e xz, con alcune differenze.

1. Per creare un file di compressione .zst, fornisci semplicemente un nome file per comprimerlo o utilizza il flag -z significa anche compress, che è l'azione predefinita.

zstd etcher-1.3.1-x86_64.AppImage 
OR
zstd -z etcher-1.3.1-x86_64.AppImage 

2. Per decomprimere un file di compressione .zst, utilizzare il flag -d o l'utilità unzstd come mostrato.

zstd -d etcher-1.3.1-x86_64.AppImage.zst 
OR
unzstd etcher-1.3.1-x86_64.AppImage.zst 

3. Per rimuovere il file sorgente dopo un'operazione, per impostazione predefinita, il file sorgente non viene eliminato dopo una compressione o decompressione riuscita; per eliminarlo, utilizzare l'opzione --rm.

ls etcher-1.3.1-x86_64.AppImage
zstd --rm  etcher-1.3.1-x86_64.AppImage
ls etcher-1.3.1-x86_64.AppImage

4. Per impostare un livello di compressione, zstd ha una serie di modificatori di operazioni, ad esempio puoi specificare un livello di compressione come -6(un numero 1-19, il valore predefinito è 3) come mostrato.

zstd -6 --rm etcher-1.3.1-x86_64.AppImage

5. Per impostare una velocità di compressione, zstd ha un rapporto di velocità di compressione 1-10, la velocità di compressione predefinita è 1. Puoi scambiare il rapporto di compressione con la velocità di compressione con l'opzione --fast, maggiore è il numero maggiore è la velocità di compressione.

zstd --fast=10 etcher-1.3.1-x86_64.AppImage

6. Per visualizzare informazioni su un file compresso, utilizzare il flag -l, che viene utilizzato, ad esempio, per visualizzare informazioni su un file compresso.

zstd -l etcher-1.3.1-x86_64.AppImage.zst

7. Per testare l'integrità di un file compresso, utilizza il flag -t come mostrato.

zstd -t etcher-1.3.1-x86_64.AppImage.zst

8. Per abilitare la modalità dettagliata, utilizza l'opzione -v.

zstd -v -5 etcher-1.3.1-x86_64.AppImage

9. Per utilizzare altri formati di compressione o decompressione di file come gzip, xz, lzma e lz4, utilizzando --format=FORMAT come mostrato.

zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
zstd -v --format=xz  etcher-1.3.1-x86_64.AppImage

10. Per impostare la priorità di un processo zstd su in tempo reale, puoi utilizzare l'opzione –priority=rt come mostrato.

$zstd --priority=rt etcher-1.3.1-x86_64.AppImage

Il flag -r indica a zstd di operare in modo ricorsivo sui dizionari. Puoi trovare molte opzioni utili e avanzate, come leggere o creare dizionari consultando la pagina man di zstd.

man zstd

Repository Github Zstandard: https://github.com/facebook/zstd

Zstandard è un algoritmo di compressione dati veloce e senza perdita di dati in tempo reale e uno strumento di compressione che offre rapporti di compressione elevati. Provalo e condividi le tue opinioni al riguardo o fai domande tramite il modulo di feedback qui sotto.