zstd - Usa ka Dali nga Data Compression Algorithm nga Gigamit sa Facebook


Ang Zstandard (nailhan usab nga zstd) usa ka libre nga open source, paspas nga real-time nga data compression program nga adunay mas maayo nga compression ratios, nga gihimo sa Facebook. Kini usa ka lossless compression algorithm nga gisulat sa C (adunay usa ka re-implementation sa Java) - sa ingon usa ka lumad nga programa sa Linux.

Kung gikinahanglan, mahimo nga ibaligya ang katulin sa compression alang sa mas kusog nga mga ratios sa compression (katulin sa compression kumpara sa ratio sa compression trade-off mahimong ma-configure pinaagi sa gagmay nga mga pag-uswag), vice versa. Kini adunay espesyal nga paagi para sa gamay nga data compression, nailhan nga dictionary compression, ug makahimo og mga diksyonaryo gikan sa bisan unsang sample set nga gihatag. Kini adunay usa ka command line utility alang sa paghimo ug pag-decode sa .zst, .gz, .xz ug .lz4 nga mga file.

Importante, ang Zstandard adunay daghang koleksyon sa mga API, nagsuporta sa halos tanang sikat nga programming language lakip ang Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft, ug daghan pa.

Aktibo kini nga gigamit sa pag-compress sa dagkong mga volume sa datos sa daghang mga format ug paggamit sa mga kaso sa Facebook; mga serbisyo sama sa Amazon Redshift data warehousing; mga database sama sa Hadoop ug Redis; ang Tor network ug daghang uban pang mga aplikasyon lakip ang mga dula.

Ang mosunod nga mga resulta makuha pinaagi sa paghimo sa daghang paspas nga compression algorithm nga mga pagsulay sa usa ka server nga nagpadagan sa Linux Debian gamit ang lzbench, usa ka open-source nga in-memory benchmark nga himan.

Giunsa ang Pag-install sa Zstandard Compression Tool sa Linux

Aron ma-install ang Zstandard sa usa ka distribusyon sa Linux, kinahanglan nimo nga i-compile kini gikan sa mga gigikanan, apan sa wala pa kana kinahanglan nimo nga i-install ang kinahanglan nga mga himan sa pag-uswag sa imong sistema gamit ang imong manager sa pakete sa pag-apod-apod sama sa gipakita.

$ 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+

Kung ma-install na ang tanan nga gikinahanglan nga mga himan sa pag-uswag, karon mahimo nimong i-download ang gigikanan nga pakete, mobalhin sa direktoryo sa lokal nga repo, tukuron ang binary ug i-install kini sama sa gipakita.

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

Sa higayon nga ma-install ang Zstandard, karon mahimo na kitang mobalhin aron mahibal-an ang pipila ka sukaranan nga paggamit sa mga pananglitan sa Zstd command sa sunod nga seksyon.

Pagkat-on sa 10 Zstd Command Usage Examples sa Linux

Ang command line syntax sa Zstd kasagaran susama sa gzip ug xz nga mga himan, nga adunay pipila ka mga kalainan.

1. Sa paghimo ug .zst compression file, paghatag lang ug filename aron ma-compress kini o gamita ang -z nga bandila nagpasabot usab sa compress, nga mao ang default nga aksyon.

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

2. Aron ma-decompress ang usa ka .zst compression file, gamita ang -d nga bandila o ang unzstd utility sama sa gipakita.

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

3. Sa pagtangtang sa source file human sa usa ka operasyon, sa default, ang source file dili mapapas human sa malampusong compression o decompression, aron mapapas kini, gamita ang --rm option.

$ 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. Para magbutang ug compression level, ang zstd adunay ubay-ubay nga operation modifiers, pananglitan mahimo nimong itakda ang compression level isip -6(usa ka numero 1-19, default mao ang 3) sama sa gipakita.

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

5. Aron mabutang ang gikusgon sa compression, ang zstd adunay compression speed ratio 1-10, ang default compression speed mao ang 1. Mahimo nimong ibaylo ang compression ratio para sa compression speed gamit ang --fast option, mas taas ang numero mas paspas ang compression speed.

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

6. Aron ipakita ang impormasyon mahitungod sa usa ka compressed file, gamita ang -l flag, nga gigamit sa pagpakita sa impormasyon mahitungod sa usa ka compressed file, pananglitan.

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

7. Para sulayan ang integridad sa usa ka compressed files, gamita ang -t flag sama sa gipakita.

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

8. Aron mahimo ang verbose mode, gamita ang -v nga opsyon.

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

9. Sa paggamit sa ubang mga file compression o decompression format sama sa gzip, xz, lzma, ug lz4, gamit ang --format=FORMAT sama sa gipakita.

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

10. Para magbutang ug zstd process priority sa real-time, pwede nimong gamiton ang option –priority=rt sama sa gipakita.

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

Ang -r nga bandera nagmando sa zstd nga molihok nga balikbalik sa mga diksyonaryo. Makita nimo ang daghang mapuslanon ug advanced nga mga kapilian, kung unsaon pagbasa o paghimo og mga diksyonaryo pinaagi sa pagkonsulta sa zstd man page.

$ man zstd

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

Ang Zstandard usa ka paspas nga real-time, walay pagkawala nga data compression algorithm ug compression tool nga nagtanyag taas nga compression ratios. Sulayi kini ug ipaambit ang imong mga hunahuna bahin niini o pangutana pinaagi sa porma sa feedback sa ubos.