zstd - Alugoridimu funmorawon data Yara kan Ti Facebook Lo


Zstandard (ti a tun mọ ni zstd) jẹ orisun ṣiṣi ọfẹ, eto fifun gidi-akoko iyara fun iyara pẹlu awọn ipo fifunkuro ti o dara julọ, ti dagbasoke nipasẹ Facebook. O jẹ algorithm funmorawon aisọnu ti a kọ sinu C (atunṣe kan wa ni Java) - bayi ni eto Linux abinibi rẹ.

Nigbati o ba nilo, o le ṣe iṣowo iyara fun pọ fun awọn iṣiro funmorawọn ti o lagbara (iyara funmorawon vs isomọ ipin ifunpọ le jẹ tunto nipasẹ awọn alekun kekere), ni idakeji. O ni ipo pataki fun titẹkuro data kekere, ti a mọ ni ifunmọ iwe-itumọ, ati pe o le kọ awọn iwe-itumọ lati eyikeyi apẹẹrẹ ti a pese. O wa pẹlu iwulo laini aṣẹ fun ṣiṣẹda ati ṣiṣatunṣe awọn faili .zst, .gz, .xz ati .lz4.

Ni pataki, Zstandard ni akojọpọ ọrọ ti awọn API, o fẹrẹ ṣe atilẹyin fun gbogbo awọn ede siseto olokiki pẹlu Python, Java, JavaScript, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Yi pada, ati ọpọlọpọ diẹ sii.

O ti wa ni lilo lọwọ lati rọ awọn iwọn data nla ni awọn ọna kika pupọ ati lo awọn ọran ni Facebook; awọn iṣẹ bii ibi ipamọ data data Amazon Redshift; awọn apoti isura data gẹgẹbi Hadoop ati Redis; nẹtiwọọki Tor ati ọpọlọpọ awọn ohun elo miiran pẹlu awọn ere.

Awọn abajade wọnyi ni a gba nipasẹ ṣiṣe ọpọlọpọ awọn idanwo funrawọn ọrọ aligoridimu ni kiakia lori olupin ti n ṣiṣẹ Linux Debian ni lilo lzbench, orisun orisun-in-in-tool ni ibi-iranti.

Bii o ṣe le Fi Irinṣẹ funmorawon Zstandard sori Linux

Lati fi Zstandard sori ẹrọ pinpin Linux kan, o nilo lati ṣajọ lati awọn orisun, ṣugbọn ṣaju iyẹn akọkọ o nilo lati fi sori ẹrọ awọn irinṣẹ idagbasoke pataki lori ẹrọ rẹ nipa lilo oluṣakoso package pinpin rẹ bi o ti han.

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

Lọgan ti a fi gbogbo awọn irinṣẹ idagbasoke ti o nilo sii, ni bayi o le ṣe igbasilẹ package orisun, gbe sinu itọsọna repo agbegbe, kọ alakomeji ki o fi sii bi o ti han.

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

Lọgan ti a fi sori ẹrọ Zstandard, ni bayi a le lọ siwaju lati kọ diẹ ninu lilo ipilẹ ti awọn apẹẹrẹ aṣẹ Zstd ni abala atẹle.

Kọ ẹkọ Awọn apẹẹrẹ Lilo Lilo Zstd 10 ni Linux

Sintasi laini aṣẹ Zstd jẹ deede iru si ti gzip ati awọn irinṣẹ xz, pẹlu awọn iyatọ diẹ.

1. Lati ṣẹda .zst faili funmorawon, nirọrun pese orukọ faili kan lati compress rẹ tabi lo asia -z tun tumọ si compress, eyiti o jẹ iṣe aiyipada.

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

2. Lati decompress kan .zst faili funmorawon, lo Flag -d tabi ohun elo unzstd bi o ti han.

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

3. Lati yọ faili orisun lẹhin iṣẹ kan, ni aiyipada, faili orisun ko ni paarẹ lẹhin titẹkuro aṣeyọri tabi decompression, lati paarẹ, lo aṣayan --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. Lati ṣeto ipele funmorawon, zstd ni nọmba awọn oluṣe iṣẹ, fun apeere o le ṣe afihan ipele funmorawon bi -6 (nọmba kan 1-19, aiyipada jẹ 3) bi a ṣe han.

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

5. Lati ṣeto iyara funmorawon, zstd ni ipin iyara funmorawon 1-10, iyara funmorawon aiyipada ni 1. O le ṣe iṣowo ipin funmorawon fun iyara fifun pọ pẹlu aṣayan --fast , ti o ga julọ nọmba yiyara iyara funmorawon.

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

6. Lati ṣe afihan alaye nipa faili ti a fisinuirindigbindigbin, lo Flag -l , eyiti o lo lati ṣafihan alaye nipa faili ti a fi pamọ, fun apẹẹrẹ.

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

7. Lati ṣe idanwo iduroṣinṣin ti awọn faili ti a fisinuirindigbindigbin, lo asia -t bi o ti han.

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

8. Lati mu ipo ọrọ-ọrọ ṣiṣẹ, lo aṣayan -v .

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

9. Lati lo funmorawon faili miiran tabi awọn ọna kika idinku bi gzip, xz, lzma, ati lz4, ni lilo --format = FORMAT bi o ti han.

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

10. Lati ṣeto ilana ilana zstd kan si akoko gidi, o le lo aṣayan –priority = rt bi o ti han.

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

Flag -r n kọ zstd lati ṣiṣẹ ni atunkọ lori awọn iwe itumọ. O le wa ọpọlọpọ awọn aṣayan to wulo ati ti ilọsiwaju, bii o ṣe ka tabi ṣẹda awọn iwe-itumọ nipa ṣiṣọrọ si oju-iwe eniyan zstd.

$ man zstd

Ibi ipamọ Github Zstandard: https://github.com/facebook/zstd

Zstandard jẹ akoko gidi gidi, aito algorithm funmorawon data pipadanu ati ọpa fifunpọ eyiti o funni ni awọn ipo fifunpọ giga. Gbiyanju o jade ki o pin awọn ero rẹ nipa rẹ tabi beere awọn ibeere nipasẹ fọọmu esi ni isalẹ.