Weboldal keresés

zstd – A Facebook által használt gyors adattömörítési algoritmus


A Zstandard (más néven zstd) egy ingyenes nyílt forráskódú, gyors, valós idejű adattömörítő program jobb tömörítési aránnyal, a Facebook fejlesztése. Ez egy veszteségmentes tömörítési algoritmus, amelyet C nyelven írnak (van egy újraimplementáció a Java nyelven) – tehát natív Linux-program.

Olvassa el még: 10 7zip (adattömörítés) parancspélda Linuxban

Szükség esetén a tömörítési sebességet erősebb tömörítési arányra cserélheti (a tömörítési sebesség és a tömörítési arány közötti kompromisszum kis lépésekkel konfigurálható), fordítva. Speciális móddal rendelkezik kisméretű adattömörítéshez, amelyet szótártömörítésnek neveznek, és szótárakat tud készíteni bármilyen mintakészletből. Tartalmaz egy parancssori segédprogramot a .zst, .gz, .xz és .lz4 létrehozásához és dekódolásához. fájlokat.

Fontos, hogy a Zstandard API-k gazdag gyűjteményével rendelkezik, szinte az összes népszerű programozási nyelvet támogatja, beleértve a Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft és még sok más nyelvet.

Aktívan használják nagy mennyiségű adat többféle formátumban történő tömörítésére és felhasználási esetekre a Facebookban; szolgáltatások, mint például az Amazon Redshift adattárház; adatbázisok, mint például a Hadoop és a Redis; a Tor hálózat és sok más alkalmazás, beleértve a játékokat is.

A következő eredményeket úgy kaptuk meg, hogy számos gyors tömörítési algoritmus tesztet végeztünk egy Linux Debiant futtató kiszolgálón az lzbench, egy nyílt forráskódú memórián belüli benchmark eszköz használatával.

A Zstandard tömörítőeszköz telepítése Linux alatt

A Zstandard Linux disztribúcióra való telepítéséhez forrásokból kell lefordítania, de előtte először telepítenie kell a szükséges fejlesztőeszközöket a rendszerére a disztribúciós csomagkezelő segítségével, ahogy az ábra mutatja.

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+

Miután az összes szükséges fejlesztőeszköz telepítve van, letöltheti a forráscsomagot, áthelyezheti a helyi repo könyvtárba, összeállíthatja a bináris fájlt és telepítheti az ábrán látható módon.

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

A Zstandard telepítése után most továbbléphetünk, hogy megtanuljunk néhány alapvető Zstd parancs példát a következő részben.

Tanuljon meg 10 Zstd parancshasználati példát Linuxban

A Zstd parancssori szintaxisa általában hasonló a gzip és xz eszközökéhez, néhány eltéréssel.

1. .zst tömörítési fájl létrehozásához egyszerűen adjon meg egy fájlnevet a tömörítéshez, vagy használja a -z jelzőt a tömörítést is jelenti, ami az alapértelmezett művelet.

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

2. A .zst tömörítési fájl kicsomagolásához használja a -d jelzőt vagy az unzstd segédprogramot az ábrán látható módon.

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

3. A forrásfájl művelet utáni eltávolításához alapértelmezés szerint a forrásfájl nem törlődik a sikeres tömörítés vagy kicsomagolás után, törléséhez használja a --rm opciót.

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. A tömörítési szint beállításához a zstd számos műveletmódosítóval rendelkezik, például megadhat egy tömörítési szintet -6-ként (a szám 1-19, alapértelmezés szerint 3) az ábra szerint.

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

5. A tömörítési sebesség beállításához a zstd tömörítési sebesség aránya 1-10, az alapértelmezett tömörítési sebesség 1. A tömörítési arányt tömörítési sebességre cserélheti a --fast opcióval, minél nagyobb a szám, annál gyorsabb a tömörítési sebesség.

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

6. Egy tömörített fájl információinak megjelenítéséhez használja a -l jelzőt, amely például egy tömörített fájl információinak megjelenítésére szolgál.

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

7. A tömörített fájlok integritásának teszteléséhez használja a -t jelzőt az ábra szerint.

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

8. A részletes mód engedélyezéséhez használja a -v kapcsolót.

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

9. Más fájltömörítési vagy kitömörítési formátumok (például gzip, xz, lzma és lz4) használatához használja a --format=FORMAT formátumot az ábra szerint.

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

10. Ha a zstd folyamat prioritását valós idejűre szeretné beállítani, használja a –priority=rt opciót az ábrán látható módon.

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

A -r jelző arra utasítja a zstd-t, hogy rekurzívan működjön szótárakon. A zstd kézikönyvoldalán rengeteg hasznos és haladó opciót találhat a szótárak olvasásához vagy létrehozásához.

man zstd

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

A Zstandard egy gyors, valós idejű, veszteségmentes adattömörítési algoritmus és tömörítő eszköz, amely magas tömörítési arányt kínál. Próbálja ki, és ossza meg gondolatait vele kapcsolatban, vagy tegyen fel kérdéseket az alábbi visszajelzési űrlapon keresztül.