Zoeken op website

zstd - Een snel datacompressiealgoritme dat door Facebook wordt gebruikt


Zstandard (ook bekend als zstd) is een gratis open source, snel real-time datacompressieprogramma met betere compressieverhoudingen, ontwikkeld door Facebook. Het is een verliesvrij compressie-algoritme geschreven in C (er is een herimplementatie in Java) – het is dus een native Linux-programma.

Lees ook: 10 voorbeelden van 7zip-opdrachten (gegevenscompressie) in Linux

Indien nodig kan het de compressiesnelheid inruilen voor sterkere compressieverhoudingen (de afweging tussen compressiesnelheid en compressieverhouding kan in kleine stappen worden geconfigureerd), vice versa. Het heeft een speciale modus voor kleine datacompressie, bekend als woordenboekcompressie, en kan woordenboeken samenstellen uit elke aangeboden voorbeeldset. Het wordt geleverd met een opdrachtregelhulpprogramma voor het maken en decoderen van .zst, .gz, .xz en .lz4 bestanden.

Belangrijk is dat Zstandard een rijke verzameling API's heeft en bijna alle populaire programmeertalen ondersteunt, waaronder Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft en nog veel meer.

Het wordt actief gebruikt om grote hoeveelheden gegevens in meerdere formaten en gebruiksscenario's te comprimeren in Facebook; diensten zoals Amazon Redshift datawarehousing; databases zoals Hadoop en Redis; het Tor-netwerk en vele andere toepassingen, waaronder games.

De volgende resultaten worden verkregen door verschillende tests van snelle compressie-algoritmen uit te voeren op een server waarop Linux Debian draait met behulp van lzbench, een open-source in-memory benchmarktool.

Hoe Zstandard Compression Tool onder Linux te installeren

Om Zstandard op een Linux-distributie te installeren, moet je het uit bronnen compileren, maar daarvoor moet je eerst de benodigde ontwikkeltools op je systeem installeren met behulp van je distributiepakketbeheerder, zoals weergegeven.

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+

Zodra alle benodigde ontwikkelhulpmiddelen zijn geïnstalleerd, kunt u nu het broncodepakket downloaden, naar de lokale repo-map gaan, het binaire bestand bouwen en het installeren zoals weergegeven.

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

Zodra Zstandard is geïnstalleerd, kunnen we verder gaan en wat basisgebruik van Zstd commandovoorbeelden leren in de volgende sectie.

Leer 10 voorbeelden van Zstd-opdrachtgebruik in Linux

De syntaxis van de opdrachtregel van Zstd is over het algemeen vergelijkbaar met die van de tools gzip en xz, met enkele verschillen.

1. Om een .zst-compressiebestand te maken, geeft u eenvoudigweg een bestandsnaam op om het te comprimeren, of gebruikt u de vlag -z ook voor comprimeren, wat betekent de standaardactie.

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

2. Om een .zst-compressiebestand te decomprimeren, gebruikt u de vlag -d of het hulpprogramma unzstd, zoals weergegeven.

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

3. Om het bronbestand na een bewerking te verwijderen, wordt het bronbestand standaard niet verwijderd na succesvolle compressie of decompressie. Om het te verwijderen, gebruikt u de optie --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. Om een compressieniveau in te stellen, heeft zstd een aantal bewerkingsmodifiers, je kunt bijvoorbeeld een compressieniveau specificeren als -6(een getal van 1-19, standaard is 3) zoals afgebeeld.

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

5. Om een compressiesnelheid in te stellen, heeft zstd een compressiesnelheidsverhouding 1-10, de standaard compressiesnelheid is 1. Je kunt de compressieverhouding inruilen voor compressiesnelheid met de --fast optie, hoe hoger het getal, hoe sneller de compressiesnelheid.

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

6. Om informatie over een gecomprimeerd bestand weer te geven, gebruikt u de vlag -l, die bijvoorbeeld wordt gebruikt om informatie over een gecomprimeerd bestand weer te geven.

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

7. Om de integriteit van gecomprimeerde bestanden te testen, gebruikt u de vlag -t zoals weergegeven.

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

8. Om de uitgebreide modus in te schakelen, gebruikt u de optie -v.

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

9. Om andere bestandscompressie- of decompressieformaten te gebruiken, zoals gzip, xz, lzma en lz4, met behulp van de --format=FORMAT zoals weergegeven.

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

10. Om de prioriteit van een zstd-proces in realtime in te stellen, kunt u de optie –priority=rt gebruiken, zoals weergegeven.

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

De vlag -r instrueert zstd om recursief op woordenboeken te werken. Je kunt veel nuttige en geavanceerde opties vinden, hoe je woordenboeken kunt lezen of maken, door de zstd man-pagina te raadplegen.

man zstd

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

Zstandard is een snel real-time, verliesvrij algoritme en compressietool voor gegevenscompressie die hoge compressieverhoudingen biedt. Probeer het uit en deel uw mening erover of stel vragen via het onderstaande feedbackformulier.