zstd - Facebookin käyttämä nopea datan pakkausalgoritmi


Zstandard (tunnetaan myös nimellä zstd) on ilmainen avoimen lähdekoodin nopea ja reaaliaikainen datan pakkausohjelma, jonka pakkaussuhde on parempi, ja jonka on kehittänyt Facebook. Se on häviötön pakkausalgoritmi, joka on kirjoitettu C: llä (Java-sovelluksessa on uudelleentoteutus) - se on siten natiivi Linux-ohjelma.

Tarvittaessa se voi vaihtaa pakkaamisnopeuden vahvempien puristussuhteiden kanssa (puristusnopeus vs. puristussuhteen kompromissi voidaan määrittää pienillä lisäyksillä), päinvastoin. Siinä on erityinen tila pienten tietojen pakkaamiseen, joka tunnetaan sanakirjan pakkauksena, ja se voi rakentaa sanakirjoja mistä tahansa toimitetusta näytesarjasta. Sen mukana tulee komentorivi-apuohjelma .zst-, .gz-, .xz- ja .lz4-tiedostojen luomiseen ja dekoodaamiseen.

Tärkeää on, että Zstandardilla on runsaasti API-kokoelmia, se tukee melkein kaikkia suosittuja ohjelmointikieliä, mukaan lukien Python, Java, JavaScript, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Switft ja paljon muuta.

Sitä käytetään aktiivisesti suurten tietomäärien pakkaamiseen useissa muodoissa ja tapausten käyttämiseen Facebookissa; palvelut, kuten Amazon Redshift -tietovarastointi; tietokannat, kuten Hadoop ja Redis; Tor-verkko ja monet muut sovellukset, kuten pelit.

Seuraavat tulokset saadaan tekemällä useita nopeita pakkausalgoritmitestejä Linux Debiania palvelevalla palvelimella käyttämällä avoimen lähdekoodin muistin sisäistä vertailutyökalua lzbench.

Kuinka asentaa Zstandard Compression Tool Linuxiin

Jos haluat asentaa Zstandardin Linux-jakelulle, sinun on koottava se lähteistä, mutta ennen sitä sinun on ensin asennettava tarvittavat kehitystyökalut järjestelmääsi käyttämällä jakelupakettien hallintaa kuvan osoittamalla tavalla.

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

Kun kaikki tarvittavat kehitystyökalut on asennettu, voit nyt ladata lähdekoodipaketin, siirtyä paikalliseen repohakemistoon, rakentaa binäärikoodin ja asentaa sen kuvan osoittamalla tavalla.

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

Kun Zstandard oli asennettu, voimme nyt siirtyä oppimaan joitain Zstd-komentoesimerkkien perustietoja seuraavasta osasta.

Opi 10 Zstd-komentokäytön esimerkkiä Linuxissa

Zstd: n komentorivisyntaksi on yleensä samanlainen kuin gzip- ja xz-työkaluissa, muutamalla erolla.

1. Luo .zst -pakkaustiedosto yksinkertaisesti antamalla tiedostonimi pakkaamaan se tai käyttämällä -z -lippua tarkoittaa myös pakkaamista, joka on oletustoiminto.

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

2. Purkaa .zst -pakkaustiedosto purkamalla -d -lippua tai unzstd-apuohjelmaa kuvan osoittamalla tavalla.

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

3. Jos haluat poistaa lähdetiedoston toiminnon jälkeen, lähdetiedostoa ei poisteta oletusarvoisesti pakkaamisen tai purkamisen jälkeen, voit poistaa sen käyttämällä --rm -vaihtoehtoa.

$ 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. Pakkaustason asettamiseksi zstd: llä on useita operaation muokkaajia, esimerkiksi voit määrittää pakkaustasoksi -6 (luku 1-19, oletus on 3) kuvan osoittamalla tavalla.

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

5. Pakkauksen nopeuden asettamiseksi zstd: llä on puristusnopeussuhde 1–10, oletusarvoinen pakkausnopeus on 1. Voit vaihtaa pakkaussuhteen pakkaamisnopeudelle vaihtoehdolla --fast , sitä korkeampi numero sitä nopeampi puristusnopeus.

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

6. Jos haluat näyttää tietoja pakatusta tiedostosta, käytä -l -lippua, jota käytetään esimerkiksi pakatun tiedoston tietojen näyttämiseen.

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

7. Testaa pakattujen tiedostojen eheys käyttämällä -t -lippua kuvan osoittamalla tavalla.

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

8. Ota käyttöön yksityiskohtainen tila -v -vaihtoehdolla.

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

9. Jos haluat käyttää muita tiedostojen pakkaus- tai purkuformaatteja, kuten gzip, xz, lzma ja lz4, käytä koodia --format = FORMAT kuvan osoittamalla tavalla.

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

10. Voit asettaa zstd-prosessin prioriteetin reaaliaikaiseksi käyttämällä vaihtoehtoa –priority = rt kuvan osoittamalla tavalla.

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

-r -lippu kehottaa zstd: tä toimimaan rekursiivisesti sanakirjoissa. Löydät paljon hyödyllisiä ja edistyneitä vaihtoehtoja, kuinka lukea tai luoda sanakirjoja, tarkastelemalla zstd-man-sivua.

$ man zstd

Zstandard Github -tietovarasto: https://github.com/facebook/zstd

Zstandard on nopea reaaliaikainen, häviötön datan pakkausalgoritmi ja pakkaustyökalu, joka tarjoaa korkeat pakkaussuhteet. Kokeile ja jaa ajatuksiasi siitä tai kysy kysymyksiä alla olevan palautelomakkeen kautta.