zstd – algorytm szybkiej kompresji danych używany przez Facebooka
Zstandard (znany również jako zstd) to darmowy, otwarty program do szybkiej kompresji danych w czasie rzeczywistym i lepszych współczynnikach kompresji, opracowany przez Facebook. Jest to algorytm kompresji bezstratnej napisany w C (istnieje reimplementacja w Java) – jest więc natywnym programem dla Linuksa.
Przeczytaj także: 10 przykładów poleceń 7zip (kompresja danych) w systemie Linux
W razie potrzeby może zamienić prędkość kompresji na silniejszy współczynnik kompresji (kompromis między szybkością kompresji a współczynnikiem kompresji można konfigurować w małych krokach) i odwrotnie. Posiada specjalny tryb kompresji małych danych, znany jako kompresja słownikowa, i może tworzyć słowniki na podstawie dowolnego dostarczonego zestawu próbek. Zawiera narzędzie wiersza poleceń do tworzenia i dekodowania .zst, .gz, .xz i .lz4 akta.
Co ważne, Zstandard posiada bogatą kolekcję API, obsługuje prawie wszystkie popularne języki programowania, w tym Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft i wiele innych.
Jest aktywnie używany do kompresji dużych ilości danych w wielu formatach i przypadkach użycia na Facebooku; usługi takie jak hurtownia danych Amazon Redshift; bazy danych takie jak Hadoop i Redis; sieć Tor i wiele innych aplikacji, w tym gry.
Poniższe wyniki uzyskano, wykonując kilka testów algorytmów szybkiej kompresji na serwerze z systemem Linux Debian przy użyciu lzbench, narzędzia do testów porównawczych w pamięci o otwartym kodzie źródłowym.
Jak zainstalować narzędzie do kompresji Zstandard w systemie Linux
Aby zainstalować Zstandard w dystrybucji Linuksa, musisz go skompilować ze źródeł, ale wcześniej musisz zainstalować w swoim systemie niezbędne narzędzia programistyczne, korzystając z menedżera pakietów dystrybucyjnych, jak pokazano.
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+
Po zainstalowaniu wszystkich potrzebnych narzędzi programistycznych możesz teraz pobrać pakiet źródłowy, przejść do lokalnego katalogu repo, zbudować plik binarny i zainstalować go, jak pokazano.
cd ~/Downloads
git clone https://github.com/facebook/zstd.git
cd zstd
make
sudo make install
Po zainstalowaniu Zstandard możemy teraz przejść dalej, aby poznać podstawowe przykłady użycia poleceń Zstd w poniższej sekcji.
Poznaj 10 przykładów użycia poleceń Zstd w systemie Linux
Składnia wiersza poleceń Zstd jest ogólnie podobna do składni narzędzi gzip i xz, z kilkoma różnicami.
1. Aby utworzyć plik skompresowany .zst
, po prostu podaj nazwę pliku w celu jego skompresowania lub użyj flagi -z
, która oznacza również kompresję, czyli akcja domyślna.
zstd etcher-1.3.1-x86_64.AppImage
OR
zstd -z etcher-1.3.1-x86_64.AppImage
2. Aby zdekompresować plik skompresowany .zst
, użyj flagi -d
lub narzędzia unzstd, jak pokazano.
zstd -d etcher-1.3.1-x86_64.AppImage.zst
OR
unzstd etcher-1.3.1-x86_64.AppImage.zst
3. Aby usunąć plik źródłowy po operacji, domyślnie plik źródłowy nie jest usuwany po pomyślnej kompresji lub dekompresji. Aby go usunąć, użyj opcji --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. Aby ustawić poziom kompresji, zstd ma wiele modyfikatorów operacji, na przykład możesz określić poziom kompresji jako -6
(liczba 1-19, domyślnie jest to 3) jak pokazano.
zstd -6 --rm etcher-1.3.1-x86_64.AppImage
5. Aby ustawić szybkość kompresji, zstd ma współczynnik szybkości kompresji 1-10, domyślna prędkość kompresji to 1. Możesz zamienić współczynnik kompresji na prędkość kompresji za pomocą opcji --fast
, im wyższa liczba, tym większa prędkość kompresji.
zstd --fast=10 etcher-1.3.1-x86_64.AppImage
6. Aby wyświetlić informacje o skompresowanym pliku, użyj flagi -l
, która służy na przykład do wyświetlenia informacji o skompresowanym pliku.
zstd -l etcher-1.3.1-x86_64.AppImage.zst
7. Aby przetestować integralność skompresowanych plików, użyj flagi -t
, jak pokazano.
zstd -t etcher-1.3.1-x86_64.AppImage.zst
8. Aby włączyć tryb szczegółowy, użyj opcji -v
.
zstd -v -5 etcher-1.3.1-x86_64.AppImage
9. Aby użyć innych formatów kompresji lub dekompresji plików, takich jak gzip, xz, lzma i lz4, użyj --format=FORMAT
, jak pokazano.
zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
zstd -v --format=xz etcher-1.3.1-x86_64.AppImage
10. Aby ustawić priorytet procesu zstd na czas rzeczywisty, możesz użyć opcji –priority=rt, jak pokazano.
$zstd --priority=rt etcher-1.3.1-x86_64.AppImage
Flaga -r
instruuje zstd, aby działał rekurencyjnie na słownikach. Wiele przydatnych i zaawansowanych opcji dotyczących czytania i tworzenia słowników można znaleźć na stronie podręcznika zstd.
man zstd
Repozytorium Zstandard Github: https://github.com/facebook/zstd
Zstandard to szybki algorytm bezstratnej kompresji danych w czasie rzeczywistym i narzędzie do kompresji, które oferuje wysoki współczynnik kompresji. Wypróbuj i podziel się swoimi przemyśleniami na ten temat lub zadaj pytania za pomocą poniższego formularza opinii.