zstd - Un algoritm rapid de comprimare a datelor folosit de Facebook


Zstandard (cunoscut și ca zstd) este un program gratuit de comprimare a datelor cu sursă deschisă, rapid în timp real, cu rate de compresie mai bune, dezvoltat de Facebook. Este un algoritm de compresie fără pierderi scris în C (există o reimplementare în Java) – este, prin urmare, un program Linux nativ.

Citiți și: 10 exemple de comandă 7zip (comprimarea datelor) în Linux

Atunci când este necesar, poate schimba viteza de compresie cu rapoarte de compresie mai puternice (compromisul dintre viteza de compresie și raportul de compresie poate fi configurat prin incremente mici), invers. Are un mod special pentru compresia de date mici, cunoscut sub numele de compresie de dicționar și poate construi dicționare din orice set de mostre furnizat. Vine cu un utilitar de linie de comandă pentru crearea și decodarea .zst, .gz, .xz și .lz4 fișiere.

Important, Zstandard are o colecție bogată de API-uri, acceptă aproape toate limbajele de programare populare, inclusiv Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft și multe altele.

Este utilizat în mod activ pentru a comprima volume mari de date în mai multe formate și cazuri de utilizare în Facebook; servicii precum depozitarea de date Amazon Redshift; baze de date precum Hadoop și Redis; rețeaua Tor și multe alte aplicații, inclusiv jocuri.

Următoarele rezultate sunt obținute prin efectuarea mai multor teste rapide de algoritmi de compresie pe un server care rulează Linux Debian folosind lzbench, un instrument de referință în memorie open-source.

Cum se instalează Zstandard Compression Tool în Linux

Pentru a instala Zstandard pe o distribuție Linux, trebuie să-l compilați din surse, dar înainte de aceasta trebuie mai întâi să instalați instrumentele de dezvoltare necesare pe sistemul dvs. folosind managerul de pachete de distribuție, așa cum se arată.

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+

Odată instalate toate instrumentele de dezvoltare necesare, acum puteți descărca pachetul sursă, vă puteți muta în directorul repo local, puteți construi binarul și îl puteți instala așa cum se arată.

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

Odată instalat Zstandard, acum putem merge mai departe pentru a afla câteva exemple de utilizare de bază a comenzilor Zstd în secțiunea următoare.

Aflați 10 exemple de utilizare a comenzilor Zstd în Linux

Sintaxa liniei de comandă a lui Zstd este, în general, similară cu cea a instrumentelor gzip și xz, cu câteva diferențe.

1. Pentru a crea un fișier de compresie .zst, furnizați pur și simplu un nume de fișier pentru a-l comprima sau utilizați indicatorul -z înseamnă, de asemenea, comprimare, care este acțiunea implicită.

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

2. Pentru a decomprima un fișier de compresie .zst, utilizați indicatorul -d sau utilitarul unzstd după cum se arată.

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

3. Pentru a elimina fișierul sursă după o operație, în mod implicit, fișierul sursă nu este șters după comprimare sau decomprimare reușită, pentru a-l șterge, utilizați opțiunea --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. Pentru a seta un nivel de compresie, zstd are o serie de modificatori de operare, de exemplu, puteți specifica un nivel de compresie ca -6(un număr 1-19, implicit este 3) după cum se arată.

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

5. Pentru a seta o viteză de compresie, zstd are un raport al vitezei de compresie 1-10, viteza de compresie implicită este 1. Puteți schimba raportul de compresie cu viteza de compresie cu opțiunea --fast, cu cât numărul este mai mare, cu atât este mai rapidă viteza de compresie.

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

6. Pentru a afișa informații despre un fișier comprimat, utilizați indicatorul -l, care este folosit pentru a afișa informații despre un fișier comprimat, de exemplu.

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

7. Pentru a testa integritatea unui fișier comprimat, utilizați indicatorul -t așa cum se arată.

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

8. Pentru a activa modul verbose, utilizați opțiunea -v.

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

9. Pentru a utiliza alte formate de compresie sau decompresie de fișiere, cum ar fi gzip, xz, lzma și lz4, folosind --format=FORMAT după cum se arată.

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

10. Pentru a seta o prioritate a procesului zstd în timp real, puteți utiliza opțiunea –priority=rt după cum se arată.

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

Indicatorul -r indică zstd să opereze recursiv pe dicționare. Puteți găsi o mulțime de opțiuni utile și avansate, cum să citiți sau să creați dicționare consultând pagina de manual zstd.

man zstd

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

Zstandard este un algoritm rapid de comprimare a datelor, fără pierderi, în timp real și un instrument de compresie, care oferă rate de compresie ridicate. Încercați-l și împărtășiți-vă părerile despre el sau adresați întrebări prin intermediul formularului de feedback de mai jos.