zstd - En rask datakomprimeringsalgoritme brukt av Facebook


Zstandard (også kjent som zstd) er et gratis åpen kildekode, raskt sanntids datakomprimeringsprogram med bedre komprimeringsforhold, utviklet av Facebook. Det er en tapsfri komprimeringsalgoritme skrevet i C (det er en re-implementering i Java) - det er dermed et naturlig Linux-program.

Når det er nødvendig, kan det bytte kompresjonshastighet mot sterkere kompresjonsforhold (kompresjonshastighet vs kompresjonsforhold kan konfigureres med små trinn), omvendt. Den har en spesiell modus for liten datakomprimering, kjent som ordbokkomprimering, og kan bygge ordbøker fra et hvilket som helst eksempelsett. Den kommer med et kommandolinjeverktøy for å lage og dekode .zst-, .gz-, .xz- og .lz4-filer.

Viktigere, Zstandard har en rik samling av APIer, støtter nesten alle populære programmeringsspråk inkludert Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft og mye mer.

Det brukes aktivt til å komprimere store datavolumer i flere formater og brukssaker i Facebook; tjenester som Amazon Redshift datavarehus; databaser som Hadoop og Redis; Tor-nettverket og mange andre applikasjoner, inkludert spill.

Følgende resultater oppnås ved å utføre flere raske komprimeringsalgoritmetester på en server som kjører Linux Debian ved å bruke lzbench, et benchmarkverktøy med åpen kildekode i minnet.

Hvordan installere Zstandard Compression Tool i Linux

For å installere Zstandard på en Linux-distribusjon, må du kompilere den fra kilder, men før det må du først installere de nødvendige utviklingsverktøyene på systemet ditt ved å bruke distribusjonspakkebehandleren som vist.

$ 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+

Når alle nødvendige utviklingsverktøy er installert, kan du nå laste ned kildepakken, flytte inn i den lokale repo-katalogen, bygge binæren og installere den som vist.

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

Når Zstandard er installert, kan vi nå gå videre for å lære litt grunnleggende bruk av Zstd-kommandoeksempler i den følgende delen.

Lær 10 eksempler på bruk av Zstd-kommandoer i Linux

Zstds kommandolinjesyntaks er generelt lik den for gzip- og xz-verktøy, med noen få forskjeller.

1. For å lage en .zst-komprimeringsfil, oppgi et filnavn for å komprimere den eller bruk -z-flagget betyr også komprimering, som er standardhandlingen.

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

2. For å dekomprimere en .zst-komprimeringsfil, bruk -d-flagget eller unzstd-verktøyet som vist.

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

3. For å fjerne kildefilen etter en operasjon, som standard, slettes ikke kildefilen etter vellykket komprimering eller dekomprimering. For å slette den, bruk --rm-alternativet.

$ 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. For å angi et komprimeringsnivå, har zstd en rekke operasjonsmodifikatorer, for eksempel kan du spesifisere et komprimeringsnivå som -6(et tall 1-19, standard er 3) som vist.

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

5. For å angi en kompresjonshastighet har zstd et kompresjonshastighetsforhold 1-10, standard kompresjonshastighet er 1. Du kan bytte kompresjonsforhold for kompresjonshastighet med alternativet --fast, jo høyere nummer jo høyere kompresjonshastighet.

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

6. For å vise informasjon om en komprimert fil, bruk -l-flagget, som brukes til å vise informasjon om en komprimert fil, for eksempel.

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

7. For å teste integriteten til en komprimert fil, bruk -t-flagget som vist.

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

8. For å aktivere detaljert modus, bruk -v-alternativet.

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

9. For å bruke andre filkomprimerings- eller dekomprimeringsformater som gzip, xz, lzma og lz4, bruk --format=FORMAT som vist.

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

10. For å sette en zstd-prosessprioritet til sanntid, kan du bruke alternativet –priority=rt som vist.

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

-r-flagget instruerer zstd å operere rekursivt på ordbøker. Du kan finne mange nyttige og avanserte alternativer, hvordan du leser eller lager ordbøker ved å konsultere zstd-man-siden.

$ man zstd

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

Zstandard er en rask sanntids, tapsfri datakomprimeringsalgoritme og komprimeringsverktøy som tilbyr høye komprimeringsforhold. Prøv det og del tankene dine om det eller still spørsmål via tilbakemeldingsskjemaet nedenfor.