zstd - Facebook Tarafından Kullanılan Hızlı Bir Veri Sıkıştırma Algoritması


Zstandard (zstd olarak da bilinir), Facebook tarafından geliştirilen, daha iyi sıkıştırma oranlarına sahip, ücretsiz, açık kaynaklı, hızlı, gerçek zamanlı veri sıkıştırma programıdır. Bu, C ile yazılmış kayıpsız bir sıkıştırma algoritmasıdır (Java'da yeniden uygulaması vardır) ve dolayısıyla yerel bir Linux programıdır.

Ayrıca Okuyun: Linux'ta 10 7zip (Veri Sıkıştırma) Komut Örneği

Gerektiğinde sıkıştırma hızını daha güçlü sıkıştırma oranlarıyla değiştirebilir (sıkıştırma hızı ile sıkıştırma oranı arasındaki denge küçük artışlarla yapılandırılabilir), bunun tersi de geçerlidir. Küçük veri sıkıştırma için sözlük sıkıştırma olarak bilinen özel bir modu vardır ve sağlanan herhangi bir örnek setten sözlükler oluşturabilir. .zst, .gz, .xz ve .lz4'ü oluşturmak ve kodunu çözmek için bir komut satırı yardımcı programıyla birlikte gelir. Dosyalar.

Daha da önemlisi, Zstandard'ın zengin bir API koleksiyonu vardır; Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft ve çok daha fazlasını içeren hemen hemen tüm popüler programlama dillerini destekler.

Büyük hacimli verileri birden fazla formatta sıkıştırmak için aktif olarak kullanılır ve Facebook'taki kullanım örneklerini kullanır; Amazon Redshift veri depolama gibi hizmetler; Hadoop ve Redis gibi veritabanları; Tor ağı ve oyunlar dahil diğer birçok uygulama.

Aşağıdaki sonuçlar, açık kaynaklı bir bellek içi kıyaslama aracı olan lzbench kullanılarak Linux Debian çalıştıran bir sunucuda birkaç hızlı sıkıştırma algoritması testi yapılarak elde edilmiştir.

Linux'ta Zstandard Sıkıştırma Aracı Nasıl Kurulur

Zstandard'ı bir Linux dağıtımına kurmak için kaynaklardan derlemeniz gerekir, ancak bundan önce önce gösterildiği gibi dağıtım paket yöneticinizi kullanarak gerekli geliştirme araçlarını sisteminize yüklemeniz gerekir.

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+

Gerekli tüm geliştirme araçları yüklendikten sonra artık kaynak paketi indirebilir, yerel repo dizinine gidebilir, ikili dosyayı oluşturabilir ve gösterildiği gibi kurabilirsiniz.

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

Zstandard kurulduktan sonra, artık aşağıdaki bölümde Zstd komut örneklerinin bazı temel kullanımını öğrenmek için daha ileri gidebiliriz.

Linux'ta 10 Zstd Komut Kullanım Örneği Öğrenin

Zstd'nin komut satırı sözdizimi, birkaç farkla genel olarak gzip ve xz araçlarınınkine benzer.

1. Bir .zst sıkıştırma dosyası oluşturmak için, dosyayı sıkıştıracak bir dosya adı vermeniz veya sıkıştırma anlamına da gelen -z işaretini kullanmanız yeterlidir. varsayılan eylem.

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

2. Bir .zst sıkıştırma dosyasının sıkıştırmasını açmak için, gösterildiği gibi -d işaretini veya unzstd yardımcı programını kullanın.

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

3. Kaynak dosyayı bir işlemden sonra kaldırmak için, varsayılan olarak, başarılı sıkıştırma veya açma işleminden sonra kaynak dosya silinmez, silmek için --rm seçeneğini kullanın.

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. Bir sıkıştırma düzeyi ayarlamak için zstd'nin bir takım işlem değiştiricileri vardır; örneğin, bir sıkıştırma düzeyini -6(1-19 arasında bir sayı, varsayılan değerdir) olarak belirleyebilirsiniz. 3) gösterildiği gibi.

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

5. Bir sıkıştırma hızı ayarlamak için zstd'nin 1-10 sıkıştırma hızı oranı vardır, varsayılan sıkıştırma hızı 1'dir. --fast seçeneğiyle sıkıştırma oranını sıkıştırma hızıyla değiştirebilirsiniz; sayı ne kadar yüksek olursa sıkıştırma hızı da o kadar hızlı olur.

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

6. Sıkıştırılmış bir dosya hakkındaki bilgileri görüntülemek için, örneğin sıkıştırılmış bir dosya hakkındaki bilgileri görüntülemek için kullanılan -l işaretini kullanın.

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

7. Sıkıştırılmış dosyaların bütünlüğünü test etmek için gösterildiği gibi -t işaretini kullanın.

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

8. Ayrıntılı modu etkinleştirmek için -v seçeneğini kullanın.

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

9. Gösterildiği gibi --format=FORMAT kullanarak gzip, xz, lzma ve lz4 gibi diğer dosya sıkıştırma veya açma formatlarını kullanmak için.

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

10. Bir zstd işlem önceliğini gerçek zamanlı olarak ayarlamak için gösterildiği gibi –priority=rt seçeneğini kullanabilirsiniz.

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

-r bayrağı zstd'ye sözlüklerde yinelemeli olarak işlem yapma talimatını verir. Zstd kılavuz sayfasına başvurarak çok sayıda yararlı ve gelişmiş seçenek, sözlüklerin nasıl okunacağı veya oluşturulacağı hakkında bilgi bulabilirsiniz.

man zstd

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

Zstandard, yüksek sıkıştırma oranları sunan hızlı, gerçek zamanlı, kayıpsız bir veri sıkıştırma algoritması ve sıkıştırma aracıdır. Deneyin ve bu konudaki düşüncelerinizi paylaşın veya aşağıdaki geri bildirim formunu kullanarak sorular sorun.