Website-Suche

zstd – Ein schneller Datenkomprimierungsalgorithmus, der von Facebook verwendet wird


Zstandard (auch bekannt als zstd) ist ein kostenloses Open-Source-Programm zur schnellen Echtzeit-Datenkomprimierung mit besseren Komprimierungsraten, das von Facebook entwickelt wurde. Es handelt sich um einen verlustfreien Komprimierungsalgorithmus, der in C geschrieben ist (es gibt eine Neuimplementierung in Java) – es handelt sich also um ein natives Linux-Programm.

Lesen Sie auch: 10 7zip-Befehlsbeispiele (Datenkomprimierung) unter Linux

Bei Bedarf kann die Komprimierungsgeschwindigkeit gegen stärkere Komprimierungsverhältnisse eingetauscht werden (der Kompromiss zwischen Komprimierungsgeschwindigkeit und Komprimierungsverhältnis kann in kleinen Schritten konfiguriert werden) und umgekehrt. Es verfügt über einen speziellen Modus für die Komprimierung kleiner Datenmengen, der als Wörterbuchkomprimierung bezeichnet wird, und kann Wörterbücher aus jedem bereitgestellten Beispielsatz erstellen. Es enthält ein Befehlszeilenprogramm zum Erstellen und Dekodieren von .zst, .gz, .xz und .lz4 Dateien.

Wichtig ist, dass Zstandard über eine umfangreiche Sammlung von APIs verfügt und fast alle gängigen Programmiersprachen unterstützt, darunter Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft und viele mehr.

Es wird aktiv verwendet, um große Datenmengen in verschiedenen Formaten und Anwendungsfällen in Facebook zu komprimieren. Dienste wie Amazon Redshift Data Warehousing; Datenbanken wie Hadoop und Redis; das Tor-Netzwerk und viele andere Anwendungen, einschließlich Spiele.

Die folgenden Ergebnisse werden durch die Durchführung mehrerer Tests der schnellen Komprimierungsalgorithmen auf einem Server unter Linux Debian unter Verwendung von lzbench, einem Open-Source-In-Memory-Benchmark-Tool, erzielt.

So installieren Sie das Zstandard-Komprimierungstool unter Linux

Um Zstandard auf einer Linux-Distribution zu installieren, müssen Sie es aus den Quellen kompilieren. Zuvor müssen Sie jedoch zunächst die erforderlichen Entwicklungstools mit dem Paketmanager Ihrer Distribution auf Ihrem System installieren, wie gezeigt.

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+

Sobald alle benötigten Entwicklungstools installiert sind, können Sie nun das Quellpaket herunterladen, in das lokale Repo-Verzeichnis verschieben, die Binärdatei erstellen und wie gezeigt installieren.

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

Sobald Zstandard installiert ist, können wir nun weitermachen und im folgenden Abschnitt einige grundlegende Verwendungsbeispiele für Zstd-Befehle erlernen.

Lernen Sie 10 Beispiele für die Verwendung von Zstd-Befehlen unter Linux kennen

Die Befehlszeilensyntax von Zstd ähnelt im Allgemeinen der der Tools gzip und xz, mit einigen Unterschieden.

1. Um eine .zst-Komprimierungsdatei zu erstellen, geben Sie einfach einen Dateinamen zum Komprimieren an oder verwenden Sie das Flag -z, das auch „Komprimieren“ bedeutet die Standardaktion.

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

2. Um eine .zst-Komprimierungsdatei zu dekomprimieren, verwenden Sie wie gezeigt das Flag -d oder das Dienstprogramm unzstd.

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

3. Um die Quelldatei nach einem Vorgang zu entfernen, wird die Quelldatei standardmäßig nach erfolgreicher Komprimierung oder Dekomprimierung nicht gelöscht. Um sie zu löschen, verwenden Sie die Option --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. Um eine Komprimierungsstufe festzulegen, verfügt zstd über eine Reihe von Betriebsmodifikatoren. Sie können beispielsweise eine Komprimierungsstufe als -6 angeben (eine Zahl von 1 bis 19, Standardeinstellung). 3) wie abgebildet.

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

5. Um eine Komprimierungsgeschwindigkeit festzulegen, verfügt zstd über ein Komprimierungsgeschwindigkeitsverhältnis 1-10, die Standardkomprimierungsgeschwindigkeit ist 1. Mit der Option --fast können Sie das Komprimierungsverhältnis gegen die Komprimierungsgeschwindigkeit austauschen. Je höher die Zahl, desto schneller die Komprimierungsgeschwindigkeit.

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

6. Um Informationen zu einer komprimierten Datei anzuzeigen, verwenden Sie das Flag -l, das beispielsweise zum Anzeigen von Informationen zu einer komprimierten Datei verwendet wird.

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

7. Um die Integrität einer komprimierten Datei zu testen, verwenden Sie das Flag -t wie gezeigt.

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

8. Um den ausführlichen Modus zu aktivieren, verwenden Sie die Option -v.

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

9. Um andere Dateikomprimierungs- oder Dekomprimierungsformate wie gzip, xz, lzma und lz4 zu verwenden, verwenden Sie --format=FORMAT wie gezeigt.

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

10. Um die Priorität eines zstd-Prozesses auf Echtzeit zu setzen, können Sie wie gezeigt die Option –priority=rt verwenden.

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

Das Flag -r weist zstd an, rekursiv mit Wörterbüchern zu arbeiten. Viele nützliche und erweiterte Optionen zum Lesen oder Erstellen von Wörterbüchern finden Sie in der Manpage von zstd.

man zstd

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

Zstandard ist ein schneller, verlustfreier Echtzeit-Datenkomprimierungsalgorithmus und ein Komprimierungstool, das hohe Komprimierungsraten bietet. Probieren Sie es aus und teilen Sie Ihre Gedanken dazu mit oder stellen Sie Fragen über das Feedback-Formular unten.