zstd - Kanuni ya Ukandamizaji wa Data ya Haraka Inayotumiwa na Facebook


Zstandard (pia inajulikana kama zstd) ni chanzo huria kisicholipishwa, programu ya mgandamizo wa data ya wakati halisi yenye uwiano bora zaidi, iliyotengenezwa na Facebook. Ni algorithm ya ukandamizaji isiyo na hasara iliyoandikwa katika C (kuna utekelezwaji upya katika Java) - hivyo ni programu ya asili ya Linux.

Inapohitajika, inaweza kubadilisha kasi ya mgandamizo kwa uwiano thabiti zaidi wa mgandamizo (kasi ya mgandamizo dhidi ya uwiano wa mgandamizo unaweza kusanidiwa kwa nyongeza ndogo), kinyume chake. Ina modi maalum ya mfinyazo mdogo wa data, unaojulikana kama mfinyazo wa kamusi, na inaweza kuunda kamusi kutoka kwa seti yoyote ya sampuli iliyotolewa. Inakuja na matumizi ya mstari wa amri kwa kuunda na kusimbua faili za .zst, .gz, .xz na .lz4.

Muhimu zaidi, Zstandard ina mkusanyiko tajiri wa API, inasaidia karibu lugha zote za programu maarufu ikiwa ni pamoja na Python, Java, JavaScript, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Switft, na mengi zaidi.

Inatumika kikamilifu kubana kiasi kikubwa cha data katika umbizo nyingi na matumizi ya kesi katika Facebook; huduma kama vile kuhifadhi data ya Amazon Redshift; hifadhidata kama vile Hadoop na Redis; mtandao wa Tor na programu zingine nyingi ikijumuisha michezo.

Matokeo yafuatayo yanapatikana kwa kufanya majaribio kadhaa ya ukandamizaji wa haraka kwenye seva inayoendesha Linux Debian kwa kutumia lzbench, zana huria ya uwekaji alama ya kumbukumbu.

Jinsi ya Kufunga Zana ya Kushinikiza ya Zstandard kwenye Linux

Ili kusakinisha Zstandard kwenye usambazaji wa Linux, unahitaji kuikusanya kutoka kwa vyanzo, lakini kabla ya hapo kwanza unahitaji kusakinisha zana muhimu za ukuzaji kwenye mfumo wako kwa kutumia kidhibiti cha kifurushi chako cha usambazaji kama inavyoonyeshwa.

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

Mara tu zana zote zinazohitajika za ukuzaji zikisanikishwa, sasa unaweza kupakua kifurushi cha chanzo, nenda kwenye saraka ya repo ya ndani, jenga binary na usakinishe kama inavyoonyeshwa.

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

Mara baada ya Zstandard kusakinishwa, sasa tunaweza kuendelea zaidi ili kujifunza matumizi ya msingi ya mifano ya amri ya Zstd katika sehemu ifuatayo.

Jifunze Mifano 10 za Matumizi ya Amri ya Zstd katika Linux

Syntax ya mstari wa amri ya Zstd kwa ujumla ni sawa na ile ya zana za gzip na xz, na tofauti chache.

1. Kuunda faili ya mbano ya .zst, toa tu jina la faili ili kuibana au kutumia alama ya -z pia inamaanisha kubana, ambacho ndicho kitendo chaguomsingi.

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

2. Ili kupunguza mgandamizo wa faili ya .zst, tumia alama ya -d au matumizi ya unzstd kama inavyoonyeshwa.

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

3. Kuondoa faili chanzo baada ya utendakazi, kwa chaguo-msingi, faili chanzo haijafutwa baada ya ukandamizaji uliofaulu au upunguzaji, ili kuifuta, tumia chaguo la --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. Kuweka kiwango cha mgandamizo, zstd ina idadi ya virekebishaji utendakazi, kwa mfano unaweza kubainisha kiwango cha mbano kama -6(nambari 1-19, chaguomsingi ni 3) kama inavyoonyeshwa.

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

5. Ili kuweka kasi ya mbano, zstd ina uwiano wa kasi ya mgandamizo 1-10, kasi ya mbano chaguomsingi ni 1. Unaweza kubadilisha uwiano wa mbano kwa kasi ya mgandamizo kwa chaguo la --fast, ndivyo kiwango cha juu nambari kasi ya kasi ya mgandamizo.

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

6. Ili kuonyesha taarifa kuhusu faili iliyobanwa, tumia alama ya -l, ambayo hutumiwa kuonyesha taarifa kuhusu faili iliyobanwa, kwa mfano.

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

7. Ili kupima uadilifu wa faili zilizobanwa, tumia alama ya -t kama inavyoonyeshwa.

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

8. Ili kuwezesha hali ya kitenzi, tumia chaguo la -v.

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

9. Kutumia umbizo la mbano la faili au ufinyanzi mwingine kama vile gzip, xz, lzma, na lz4, kwa kutumia --format=FORMAT kama inavyoonyeshwa.

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

10. Kuweka kipaumbele cha mchakato wa zstd kwa wakati halisi, unaweza kutumia chaguo -priority=rt kama inavyoonyeshwa.

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

Bendera ya -r inaelekeza zstd kufanya kazi kwa kujirudia kwenye kamusi. Unaweza kupata chaguzi nyingi muhimu na za hali ya juu, jinsi ya kusoma au kuunda kamusi kwa kushauriana na ukurasa wa zstd.

$ man zstd

Hazina ya Zstandard Github: https://github.com/facebook/zstd

Zstandard ni algorithm ya haraka ya wakati halisi, isiyo na hasara ya kubana data na zana ya kubana ambayo hutoa uwiano wa juu wa mbano. Ijaribu na ushiriki mawazo yako kuihusu au uulize maswali kupitia fomu ya maoni iliyo hapa chini.