zstd - algoritam brze kompresije podataka koji koristi Facebook


Zstandard (također poznat i kao zstd) besplatni je program za kompresiju podataka u stvarnom vremenu, brži u stvarnom vremenu, sa boljim omjerima kompresije, koji je razvio Facebook. To je algoritam kompresije bez gubitaka napisan na jeziku C (u Javi je ponovna implementacija) - što je njegov izvorni Linux program.

Ako je potrebno, može zamijeniti brzinu kompresije za jače omjere kompresije (brzina kompresije u odnosu na omjer kompresije može se konfigurirati malim koracima), obrnuto. Ima poseban način kompresije malih podataka, poznat kao kompresija rječnika, a može izrađivati rječnike iz bilo kojeg ponuđenog uzorka. Dolazi s uslužnim programom naredbenog retka za stvaranje i dekodiranje datoteka .zst, .gz, .xz i .lz4.

Važno je što Zstandard ima bogatu kolekciju API-ja, podržava gotovo sve popularne programske jezike, uključujući Python, Java, JavaScript, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Switft i još mnogo toga.

Aktivno se koristi za sažimanje velike količine podataka u više formata i slučajeve upotrebe na Facebooku; usluge kao što je Amazon Redshift skladištenje podataka; baze podataka kao što su Hadoop i Redis; mreža Tor i mnoge druge aplikacije, uključujući igre.

Sljedeći se rezultati dobivaju izvođenjem nekoliko testova algoritama brze kompresije na poslužitelju koji radi pod Linuxom Debian pomoću lzbench, alata za mjerenje otvorenog koda u memoriji.

Kako instalirati Zstandard alat za kompresiju u Linux

Da biste instalirali Zstandard na Linux distribuciju, morate ga kompilirati iz izvora, ali prije toga prvo morate instalirati potrebne razvojne alate na svoj sustav pomoću upravitelja distribucijskog paketa, kao što je prikazano.

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

Nakon što su instalirani svi potrebni razvojni alati, sada možete preuzeti izvorni paket, premjestiti se u lokalni repo direktorij, izgraditi binarni program i instalirati ga kako je prikazano.

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

Jednom instaliran Zstandard, sada možemo krenuti dalje da bismo u sljedećem odjeljku naučili neke osnovne primjere primjera naredbi Zstd.

Naučite 10 primjera upotrebe naredbi Zstd u Linuxu

Zstd-ova sintaksa naredbenog retka općenito je slična sintaksi gzip i xz alata, s nekoliko razlika.

1. Da biste stvorili datoteku kompresije .zst , jednostavno navedite naziv datoteke za komprimiranje ili upotrijebite zastavicu -z također znači komprimiranje, što je zadana radnja.

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

2. Da biste dekomprimirali datoteku kompresije .zst , upotrijebite zastavicu -d ili uslužni program unzstd kao što je prikazano.

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

3. Za uklanjanje izvorne datoteke nakon operacije, prema zadanim postavkama, izvorna datoteka se ne briše nakon uspješne kompresije ili dekompresije, da biste je izbrisali, upotrijebite opciju --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. Da biste postavili razinu kompresije, zstd ima brojne modifikatore operacija, na primjer možete odrediti razinu kompresije kao -6 (broj 1-19, zadani je 3) kao što je prikazano.

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

5. Da biste postavili brzinu kompresije, zstd ima omjer brzine kompresije 1-10, zadana brzina kompresije je 1. Omjer kompresije za brzinu kompresije možete trgovati opcijom --fast , što je veći broj brže kompresije.

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

6. Za prikaz podataka o komprimiranoj datoteci upotrijebite zastavicu -l koja se koristi za prikaz podataka o komprimiranoj datoteci, na primjer.

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

7. Da biste testirali integritet komprimiranih datoteka, upotrijebite zastavicu -t kao što je prikazano.

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

8. Da biste omogućili opsežni način, koristite opciju -v .

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

9. Da biste koristili druge formate kompresije ili dekompresije datoteka kao što su gzip, xz, lzma i lz4, koristeći --format = FORMAT kako je prikazano.

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

10. Da biste postavili zstd prioritet procesa u stvarnom vremenu, možete upotrijebiti opciju –priority = rt kao što je prikazano.

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

Oznaka -r upućuje zstd da radi rekurzivno na rječnicima. Putem korisnih i zstd man stranica možete pronaći mnoštvo korisnih i naprednih opcija, kako čitati ili stvarati rječnike.

$ man zstd

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

Zstandard je brzi algoritam kompresije podataka u realnom vremenu i alat za kompresiju koji nudi visoke omjere kompresije. Isprobajte i podijelite svoje mišljenje o tome ili postavljajte pitanja putem obrasca za povratne informacije u nastavku.