zstd - ātrs datu saspiešanas algoritms, ko izmanto Facebook


Zstandard (pazīstams arī kā zstd) ir bezmaksas atvērtā koda, ātra reāllaika datu saspiešanas programma ar labākiem saspiešanas koeficientiem, ko izstrādājusi Facebook. Tas ir bezzudumu saspiešanas algoritms, kas rakstīts C (Java ir atkārtoti ieviests) - tādējādi tā ir vietējā Linux programma.

Vajadzības gadījumā tas var pārvērst saspiešanas ātrumu, lai iegūtu stingrākas saspiešanas pakāpes (saspiešanas ātrumu pret saspiešanas koeficienta kompromisu var konfigurēt ar nelielu soli), otrādi. Tam ir īpašs režīms mazu datu saspiešanai, kas pazīstams kā vārdnīcu saspiešana, un tas var veidot vārdnīcas no jebkura paredzētā paraugu komplekta. Tas nāk ar komandrindas lietderību .zst, .gz, .xz un .lz4 failu izveidošanai un dekodēšanai.

Svarīgi ir tas, ka Zstandard ir bagāta API kolekcija, tā atbalsta gandrīz visas populārās programmēšanas valodas, tostarp Python, Java, JavaScript, Nodejs, Perl, Ruby, C #, Go, Rust, PHP, Switft un daudz ko citu.

To aktīvi izmanto, lai saspiestu lielu datu apjomu vairākos formātos un izmantotu gadījumus Facebook; tādi pakalpojumi kā Amazon Redshift datu noliktava; tādas datu bāzes kā Hadoop un Redis; Tor tīkls un daudzas citas lietojumprogrammas, ieskaitot spēles.

Šie rezultāti tiek iegūti, veicot vairākus ātrus saspiešanas algoritmu testus serverī, kurā darbojas Linux Debian, izmantojot atvērtā koda atmiņā ievietotu etalonu rīku lzbench.

Kā instalēt Zstandard saspiešanas rīku Linux

Lai instalētu Zstandard Linux izplatīšanā, tas jāapkopo no avotiem, bet pirms tam vispirms savā sistēmā jāinstalē nepieciešamie izstrādes rīki, izmantojot izplatīšanas pakotņu pārvaldnieku, kā parādīts.

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

Kad visi nepieciešamie izstrādes rīki ir instalēti, tagad varat lejupielādēt avota pakotni, pārvietoties uz vietējo repo direktoriju, izveidot bināro failu un instalēt to, kā parādīts.

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

Kad Zstandard tika instalēts, tagad mēs varam pāriet tālāk, lai nākamajā sadaļā uzzinātu dažus Zstd komandu piemēru pamatlietojumus.

Uzziniet 10 Zstd komandu lietošanas piemērus Linux

Zstd komandrindas sintakse parasti ir līdzīga gzip un xz rīkiem, ar dažām atšķirībām.

1. Lai izveidotu saspiešanas failu .zst , vienkārši norādiet faila nosaukumu, lai to saspiestu, vai izmantojiet karogu -z arī saspiest, kas ir noklusējuma darbība.

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

2. Lai atspiestu saspiešanas failu .zst , izmantojiet karodziņu -d vai utilītu unzstd, kā parādīts.

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

3. Lai pēc operācijas noņemtu avota failu, pēc noklusējuma avota fails pēc veiksmīgas saspiešanas vai dekompresēšanas netiek izdzēsts, lai to izdzēstu, izmantojiet opciju --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. Lai iestatītu saspiešanas līmeni, zstd ir vairāki operāciju modifikatori, piemēram, saspiešanas līmeni varat norādīt kā -6 (skaitlis 1-19, noklusējums ir 3), kā parādīts.

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

5. Lai iestatītu saspiešanas ātrumu, zstd ir saspiešanas ātruma attiecība 1–10, noklusējuma saspiešanas ātrums ir 1. Saspiešanas ātruma saspiešanas pakāpi var tirgot ar opciju --fast , jo augstāka ir numurs, jo ātrāks ir saspiešanas ātrums.

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

6. Lai parādītu informāciju par saspiestu failu, izmantojiet karodziņu -l , kuru izmanto, piemēram, informācijas parādīšanai par saspiestu failu.

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

7. Lai pārbaudītu saspiestu failu integritāti, izmantojiet karodziņu -t , kā parādīts.

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

8. Lai iespējotu daudzveidīgu režīmu, izmantojiet opciju -v .

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

9. Lai izmantotu citus failu saspiešanas vai dekompresijas formātus, piemēram, gzip, xz, lzma un lz4, izmantojot --format = FORMAT , kā parādīts.

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

10. Lai iestatītu zstd procesa prioritāti reāllaikā, varat izmantot opciju –priority = rt, kā parādīts.

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

Karogs -r uzdod zstd darboties rekursīvi ar vārdnīcām. Apskatot zstd rokasgrāmatu, varat atrast daudz noderīgu un uzlabotu iespēju, kā lasīt vai izveidot vārdnīcas.

$ man zstd

Zstandard Github krātuve: https://github.com/facebook/zstd

Zstandard ir ātrs reāllaika bezzudumu datu saspiešanas algoritms un saspiešanas rīks, kas piedāvā augstas saspiešanas pakāpes. Izmēģiniet to un dalieties savās domās vai uzdodiet jautājumus, izmantojot zemāk esošo atsauksmju veidlapu.