Facebookが開発した高速データ圧縮アルゴリズムZstdの使い方

Facebookが開発した高速データ圧縮アルゴリズムZstdの使い方

[51CTO.com クイック翻訳] Zstandard (Zstd とも呼ばれる) は、Facebook が開発した、圧縮率の高い無料のオープンソースの高速リアルタイム データ圧縮プログラムです。これは C で記述されたロスレス圧縮アルゴリズムなので、ネイティブの Linux プログラムです。

必要に応じて、圧縮速度を犠牲にしてより高い圧縮率を得ることもできます (圧縮速度と圧縮率の組み合わせは段階的に設定できます)。また、その逆も可能です。辞書圧縮と呼ばれる小さなデータ圧縮用の特別なモードがあり、提供された任意のサンプル セットから辞書を構築できます。 .zst、.gz、.xz、.lz4 ファイルなどを作成およびデコードするためのコマンド ライン ユーティリティが付属しています。

重要なのは、Zstandard には、Python、Java、JavaScript、Nodejs、Perl、Ruby、C#、Go、Rust、PHP、Swift など、ほぼすべての一般的なプログラミング言語をサポートする豊富な API セットがあることです。

Facebook では、Amazon の Redshift データ ウェアハウス、Hadoop や Redis などのデータベース、Tor ネットワーク、ゲームなどの他の多くのアプリケーションなどのさまざまなユース ケースで、大量のデータを複数の形式で圧縮するために積極的に使用されています。

オープンソースのメモリベンチマークツールである lzbench を使用して、Linux Debian を実行しているサーバー上でいくつかの簡単な圧縮アルゴリズムテストを実行しました。結果は次のとおりです。

Z標準圧縮テスト

Linux に Zstandard 圧縮ツールをインストールするにはどうすればいいですか?

Linux ディストリビューションに Zstandard をインストールするには、ソース コードからコンパイルする必要があります。ただし、その前に、次のように、ディストリビューションのパッケージ マネージャーを使用して、システムに必要な開発ツールをインストールする必要があります。

  1. $ sudo apt update && sudo apt install build-essential #Ubuntu/Debian  
  2. # yumグループインストール「開発ツール」 #CentOS/REHL  
  3. # dnf groupinstall "C 開発ツールとライブラリ" #Fedora 22+

必要な開発ツールがすべてインストールされたら、ソース コード パッケージをダウンロードし、ローカル リポジトリ ディレクトリに移動して、バイナリ ファイルをビルドし、次のようにインストールします。

  1. $ cd ~/ダウンロード 
  2. $ gitクローン https://github.com/facebook/zstd.git  
  3. $ cd zstd  
  4. $ 作る 
  5. $ sudo インストール

Zstandard がインストールされたら、次のセクションで Zstd コマンド例の基本的な使用方法を学習していきます。

Linux での Zstd コマンドの使用例 10 個を学ぶ

zstd のコマンドライン構文は、gzip ツールや xz ツールの構文と一般的に似ていますが、いくつかの違いがあります。

1. .zst 圧縮ファイルを作成するには、圧縮ファイル名を指定するか、デフォルトの操作である圧縮を意味する -z フラグを使用します。

  1. $ zstd エッチャー-1.3.1-x86_64.AppImage

または

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

2. .zst 圧縮ファイルを解凍するには、次に示すように -d フラグまたは unzstd ユーティリティを使用します。

  1. $ zstd -d エッチャー-1.3.1-x86_64.AppImage

または

  1. $ unzstd etcher-1.3.1-x86_64.AppImage

3. 圧縮操作後にソース ファイルを削除する場合、デフォルトでは、圧縮または解凍が成功した後もソース ファイルは削除されません。削除する場合は、--rm オプションを使用します。

  1. $ ls etcher-1.3.1-x86_64.AppImage  
  2. $ zstd --rm etcher-1.3.1-x86_64.AppImage    
  3. $ ls etcher-1.3.1-x86_64.AppImage

4. 圧縮レベルを設定するために、Zstd には多くの操作修飾子があります。たとえば、次に示すように、圧縮レベルを -6 (値 1 ~ 19、デフォルト値は 3) に指定できます。

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

5. 圧縮速度を設定する場合、Zstd の圧縮速度比は 1 ~ 10 で、デフォルトの圧縮速度は 1 です。 --fast オプションを使用すると、圧縮率を犠牲にして圧縮速度を上げることができます。値が大きいほど、圧縮速度が速くなります。

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

6. 圧縮ファイルに関する情報を表示するには、-l フラグを使用します。これを使用して、圧縮ファイルに関する情報を表示できます。

  1. $ zstd -l エッチャー-1.3.1-x86_64.AppImage.zst

7. 圧縮ファイルの整合性をテストするには、次に示すように -t フラグを使用します。

  1. $ zstd -t エッチャー-1.3.1-x86_64.AppImage.zst

8. 詳細モードを有効にするには、-v オプションを使用します。

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

9. gzip、xz、lzma、lz4 などの他のファイル圧縮または解凍形式を使用するには、以下に示すように --format=FORMAT を使用します。

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

10. Zstd プロセスの優先度をリアルタイムに設定するには、次に示すようにオプション -priority=rt を使用します。

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

-r フラグは、Zstd に辞書に対して再帰操作を実行するように指示します。 Zstd リファレンス ページを参照すると、多くの便利な高度なオプションや、辞書の読み取り方法や作成方法がわかります。

  1. $ 男 zstd  
  2. Zstandard Githubリポジトリ: https://github.com/facebook/zstd

Zstandard は、高い圧縮率を実現する高速リアルタイムロスレス データ圧縮アルゴリズムおよび圧縮ツールです。ぜひお試しいただき、ご意見をお聞かせください。また、下のフィードバック フォームからご質問ください。

原題: zstd – Facebook が使用する高速データ圧縮アルゴリズム、著者: Aaron Kili

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  人工知能は耳の画像だけで年齢と性別を正確に判別できる

>>:  シティグループは5年以内に1万人の雇用を人工知能で置き換える計画

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

分裂の統一へ! OMG-Seg: すべてのセグメンテーションタスクに対応する 1 つのモデル

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

リードし続けてください! Oracle Autonomous Databaseに会話型AI機能が追加

編集者 | Yifeng制作:51CTO テクノロジースタック(WeChat ID:blog) Or...

...

AIの革命的道: OpenAIのGPT-4ツアー

ソフトウェア開発者は OpenAI の GPT-4 を使用して複数のアプリケーションを生成し、時間の...

なぜ R&D 管理はコスト削減と効率向上のための永遠の特効薬と考えられているのでしょうか?

過去2年間で、インターネット業界の人口ボーナスはピークに達し、成長率は鈍化したというのが業界の全会一...

...

AI誇大宣伝はサイバーセキュリティのデフレにおけるバブルなのか?

人工知能は、その概念が最初の電子メールウイルスと同じくらい古いにもかかわらず、「ネットワークにおける...

...

データサイエンスと機械学習のためのツールと言語の最新情報

[[198310]]第 18 回 KDnuggets ソフトウェア アンケートには、今年もアナリティ...

この国産トランスフォーマーは自動変形、音声制御、プログラミングが可能。外国人は狂ったように気に入っている

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

テンセント・ロボティクス・ラボの第一人者が起業、ヒューマノイドロボット業界に新たな重鎮が加わる

テンセントのRobticsXロボティクス研究所の第一社員が始めたバイオニックロボットプロジェクトがつ...

ハーバード大学のロボット魚は、知的に協力し、集団で「泳ぎ」、サイエンス誌の表紙に登場しました。

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

任澤平:「新インフラ」は時代の痕跡を刻む

【51CTO.comオリジナル記事】今年、我が国では間違いなく新しいインフラがホットな話題です。 2...