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万人の雇用を人工知能で置き換える計画

ブログ    
ブログ    

推薦する

AIはどれほど強力でしょうか?人間とロボットが「真・偽の孫悟空」を演じる

過去数十年にわたり、チャットボットは進化を続け、私たちの日常生活に欠かせないヘルパーになりました。携...

クレジットカード詐欺を検出するための機械学習モデルを構築するにはどうすればよいでしょうか?

[[187627]]機械学習は、Apple の Siri や Google のアシスタントなどのス...

MIT、Wikipedia の更新、間違いの修正、偽ニュースの特定を行う AI 編集システムを開始

[[334141]]誰でも編集できるオンライン百科事典である Wikipedia では、各エントリを...

完全なルーティングアルゴリズムの設計目標の分析

ルーティング アルゴリズムには通常、次の 1 つ以上の設計目標があります。最適化最適化とは、メトリッ...

OpenAI 開発者会議: OpenAI が AI 分野で再び波を起こす方法

AI業界の実務家にとっては、眠れない夜を過ごしたかもしれない。北京時間11月7日早朝、アメリカの人工...

機械学習アルゴリズムの実践: 決定木

序文最近、欲張りになりすぎないように、機械学習の基本的なアルゴリズムを体系的に勉強しようと思っていま...

NLP モデルは人間の言語を理解できないのでしょうか? Microsoft AdaTestはエラーの検出効率が5倍向上

自然言語処理 (NLP) モデルは人間の言語を理解できず、テキストを反対の意味として解釈しますが、こ...

CCTV、春節に初めてバーチャル司会者サ・ベイニン氏を迎える

AIブロックチェーン企業の技術が中国の重要な国家夜会で正式に使用された。 2019年のオンライン春節...

人工知能応用シナリオのレビューと展望

2020 年は特別で忘れられない年であり、人工知能にとっても同じことが言えます。 [[374502]...

詳細な分析: AI がイノベーションを容易にする方法

開発手段。イノベーションの結果は、企業が市場のニーズを満たす新製品を継続的に設計・生産することを奨励...

不確実な環境での自動運転の軌道計画を改善するにはどうすればよいでしょうか?

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

機械学習トレーニングデータ戦略を開発するための 6 つのヒント

人工知能 (AI) と機械学習 (ML) は今や当たり前のものとなっています。 AI は人間の認知を...

...

...

ディープラーニングとディープクローニング: チャットボットにとってより優れたソリューションはどちらでしょうか?

[[200112]]編集者注: チャットボットは目新しいものではありません。Facebook や ...