zstd - Algoritma Kompresi Data Cepat yang Digunakan Oleh Facebook


Zstandard (juga dikenal sebagai zstd) adalah program kompresi data sumber terbuka dan real-time yang cepat dan gratis dengan rasio kompresi lebih baik, yang dikembangkan oleh Facebook. Ini adalah algoritme kompresi lossless yang ditulis dalam C (ada implementasi ulang di Java) – sehingga merupakan program asli Linux.

Baca Juga: 10 Contoh Perintah 7zip (Data Comperssion) di Linux

Bila diperlukan, ia dapat menukar kecepatan kompresi dengan rasio kompresi yang lebih kuat (kecepatan kompresi vs rasio kompresi dapat dikonfigurasi sedikit demi sedikit), dan sebaliknya. Ia memiliki mode khusus untuk kompresi data kecil, yang dikenal sebagai kompresi kamus, dan dapat membuat kamus dari kumpulan sampel mana pun yang disediakan. Muncul dengan utilitas baris perintah untuk membuat dan mendekode .zst, .gz, .xz dan .lz4 file.

Yang penting, Zstandard memiliki banyak koleksi API, mendukung hampir semua bahasa pemrograman populer termasuk Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft, dan banyak lagi.

Ini secara aktif digunakan untuk mengompresi data dalam jumlah besar dalam berbagai format dan kasus penggunaan di Facebook; layanan seperti gudang data Amazon Redshift; database seperti Hadoop dan Redis; jaringan Tor dan banyak aplikasi lain termasuk game.

Hasil berikut diperoleh dengan melakukan beberapa pengujian algoritma kompresi cepat pada server yang menjalankan Linux Debian menggunakan lzbench, alat benchmark dalam memori sumber terbuka.

Cara Memasang Alat Kompresi Zstandard di Linux

Untuk menginstal Zstandard pada distribusi Linux, Anda perlu mengkompilasinya dari sumber, namun sebelum itu terlebih dahulu Anda perlu menginstal alat pengembangan yang diperlukan pada sistem Anda menggunakan manajer paket distribusi seperti yang ditunjukkan.

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+

Setelah semua alat pengembangan yang diperlukan terinstal, sekarang Anda dapat mengunduh paket sumber, pindah ke direktori repo lokal, membangun biner dan menginstalnya seperti yang ditunjukkan.

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

Setelah Zstandard terinstal, sekarang kita dapat melangkah lebih jauh untuk mempelajari beberapa penggunaan dasar contoh perintah Zstd di bagian berikut.

Pelajari 10 Contoh Penggunaan Perintah Zstd di Linux

Sintaks baris perintah Zstd secara umum mirip dengan alat gzip dan xz, dengan beberapa perbedaan.

1. Untuk membuat file kompresi .zst, cukup berikan nama file untuk mengompresnya atau gunakan tanda -z yang juga berarti kompres, yaitu tindakan default.

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

2. Untuk mendekompresi file kompresi .zst, gunakan tanda -d atau utilitas unzstd seperti yang ditunjukkan.

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

3. Untuk menghapus file sumber setelah operasi, secara default, file sumber tidak dihapus setelah kompresi atau dekompresi berhasil, untuk menghapusnya, gunakan opsi --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. Untuk menyetel tingkat kompresi, zstd memiliki sejumlah pengubah operasi, misalnya Anda dapat menentukan tingkat kompresi sebagai -6(angka 1-19, defaultnya adalah 3) seperti yang ditunjukkan.

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

5. Untuk menyetel kecepatan kompresi, zstd memiliki rasio kecepatan kompresi 1-10, kecepatan kompresi default adalah 1. Anda dapat menukar rasio kompresi dengan kecepatan kompresi dengan opsi --fast, semakin tinggi angkanya, semakin cepat kecepatan kompresinya.

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

6. Untuk menampilkan informasi tentang file terkompresi, gunakan tanda -l, yang digunakan untuk menampilkan informasi tentang file terkompresi, misalnya.

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

7. Untuk menguji integritas file terkompresi, gunakan tanda -t seperti yang ditunjukkan.

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

8. Untuk mengaktifkan mode verbose, gunakan opsi -v.

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

9. Untuk menggunakan format kompresi atau dekompresi file lain seperti gzip, xz, lzma, dan lz4, gunakan --format=FORMAT seperti yang ditunjukkan.

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

10. Untuk menetapkan prioritas proses zstd ke waktu nyata, Anda dapat menggunakan opsi –priority=rt seperti yang ditunjukkan.

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

Flag -r memerintahkan zstd untuk beroperasi secara rekursif pada kamus. Anda dapat menemukan banyak opsi berguna dan lanjutan, cara membaca atau membuat kamus dengan melihat halaman manual zstd.

man zstd

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

Zstandard adalah algoritme kompresi dan alat kompresi data real-time dan lossless yang cepat dan menawarkan rasio kompresi tinggi. Cobalah dan bagikan pendapat Anda tentang hal ini atau ajukan pertanyaan melalui formulir umpan balik di bawah.