Vyhledávání na webu

zstd – Algoritmus rychlé komprese dat, který používá Facebook


Zstandard (také známý jako zstd) je bezplatný open source program pro rychlou kompresi dat v reálném čase s lepšími kompresními poměry vyvinutý Facebookem. Jedná se o bezeztrátový kompresní algoritmus napsaný v C (je zde reimplementace v Java) – jde tedy o nativní linuxový program.

Přečtěte si také: 10 příkladů příkazů 7zip (komprese dat) v systému Linux

V případě potřeby může vyměnit rychlost komprese za silnější kompresní poměry (postup mezi rychlostí komprese a poměrem komprese lze konfigurovat po malých přírůstcích), naopak. Má speciální režim pro malou kompresi dat, známý jako slovníková komprese, a dokáže vytvářet slovníky z libovolné poskytnuté ukázkové sady. Dodává se s nástrojem příkazového řádku pro vytváření a dekódování .zst, .gz, .xz a .lz4 soubory.

Důležité je, že Zstandard má bohatou sbírku rozhraní API, podporuje téměř všechny oblíbené programovací jazyky včetně Pythonu, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft a mnoha dalších.

Aktivně se používá ke kompresi velkých objemů dat v různých formátech a případech použití na Facebooku; služby jako je datové sklady Amazon Redshift; databáze jako Hadoop a Redis; síť Tor a mnoho dalších aplikací včetně her.

Následující výsledky byly získány provedením několika testů rychlých kompresních algoritmů na serveru se systémem Linux Debian pomocí lzbench, open-source nástroje pro benchmark v paměti.

Jak nainstalovat Zstandard Compression Tool v Linuxu

Chcete-li nainstalovat Zstandard na distribuci Linuxu, musíte jej zkompilovat ze zdrojů, ale předtím musíte do systému nainstalovat potřebné vývojové nástroje pomocí správce distribučních balíčků, jak je znázorněno.

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+

Jakmile jsou nainstalovány všechny potřebné vývojové nástroje, nyní si můžete stáhnout zdrojový balíček, přesunout se do adresáře lokálního repo, sestavit binární soubor a nainstalovat jej podle obrázku.

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

Po instalaci Zstandard se nyní můžeme posunout dále a naučit se základní použití příkladů příkazů Zstd v následující části.

Naučte se 10 příkladů použití příkazů Zstd v Linuxu

Syntaxe příkazového řádku Zstd je obecně podobná syntaxi nástrojů gzip a xz s několika rozdíly.

1. Chcete-li vytvořit kompresní soubor .zst, jednoduše zadejte název souboru pro komprimaci nebo použijte příznak -z, který také znamená komprimovat, což je výchozí akce.

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

2. K dekomprimaci kompresního souboru .zst použijte příznak -d nebo nástroj unzstd, jak je znázorněno.

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

3. Chcete-li zdrojový soubor po operaci odstranit, ve výchozím nastavení se zdrojový soubor po úspěšné kompresi nebo dekompresi neodstraní. Chcete-li jej odstranit, použijte volbu --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. Chcete-li nastavit úroveň komprese, zstd má řadu modifikátorů operací, například můžete určit úroveň komprese jako -6 (číslo 1-19, výchozí je 3) jak je znázorněno.

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

5. Pro nastavení rychlosti komprese má zstd poměr rychlosti komprese 1–10, výchozí rychlost komprese je 1. Kompresní poměr můžete vyměnit za rychlost komprese pomocí možnosti --fast, čím vyšší číslo, tím vyšší rychlost komprese.

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

6. Chcete-li zobrazit informace o komprimovaném souboru, použijte příznak -l, který se používá například k zobrazení informací o komprimovaném souboru.

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

7. Chcete-li otestovat integritu komprimovaných souborů, použijte příznak -t, jak je znázorněno.

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

8. Chcete-li povolit podrobný režim, použijte volbu -v.

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

9. Chcete-li použít jiné formáty komprese nebo dekomprese souborů, jako je gzip, xz, lzma a lz4, použijte --format=FORMAT podle obrázku.

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

10. Chcete-li nastavit prioritu procesu zstd na reálný čas, můžete použít volbu –priority=rt, jak je uvedeno na obrázku.

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

Příznak -r instruuje zstd, aby pracoval se slovníky rekurzivně. Mnoho užitečných a pokročilých možností, jak číst nebo vytvářet slovníky, najdete na manuálové stránce zstd.

man zstd

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

Zstandard je rychlý bezztrátový algoritmus pro kompresi dat a nástroj pro kompresi dat v reálném čase, který nabízí vysoké kompresní poměry. Vyzkoušejte to a podělte se o své názory na to nebo se zeptejte prostřednictvím formuláře pro zpětnou vazbu níže.