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がサイバーセキュリティにできること、できないこと

過去数か月間にネットユーザーを最も怖がらせたものは何かと問われれば、それは以下のウイルス攻撃だろう。...

AIによる顔を変える技術によって危害を受けるのではないかと心配ですか?怖がらないで!ディープフェイク偽造対策チームが到着

ディープフェイクは登場以来、人間性の暗い側面へと向かっています。 Bステーションのユーザーは、陸小玲...

人工知能統計調査:消費者の86%が手動の顧客サービスを好む

AI の健全性と進歩に関する最近の調査、研究、予測、その他の定量的評価では、米国の消費者がチャットボ...

...

危険なAIアルゴリズムを識別し、倫理原則に従ったビッグデータモデルを作成する方法

人工知能がもたらす脅威について議論するとき、スカイネット、マトリックス、ロボットによる終末の世界とい...

AI の応用分野トップ 10 を調べて、自分の専攻分野が含まれているかどうか確認してください。

人工知能や脳の研究を考えるとき、人々はターミネーターマシンが世界を破壊するイメージを思い浮かべます。...

追跡すべきマルチモーダル LLM が多すぎますか?まずは26のSOTAモデルを見てみましょう

現在、AI分野の焦点は大規模言語モデル(LLM)からマルチモーダルへと移行しており、その結果、LLM...

AIオープンクラス | データのラベル付けについてはあまりご存じないのではないでしょうか?

人工知能の分野が日々急速な発展と進歩を遂げていることは疑いの余地がありません。携帯電話の電源を入れ、...

ネットワークにおける機械学習の実用的応用

各 Web アプリケーションには独自の機能とパフォーマンス パラメーターのセットがあり、これらは動的...

...

...

第14次5カ年計画を見据えて、我が国のロボット産業はどこに向かっているのでしょうか?

ロボットは製造業の「至宝」とみなされています。近年、人口ボーナスの継続的な減少と自動化生産の需要の継...

AI Eyes: テクノロジーを活用して予防可能な失明をなくす

暗い世界に生きる自分を想像してみてください。人生の大半を目が見えている状態で過ごし、ある日突然失明し...

人工知能は本当に人間の仕事を置き換えるのでしょうか?

今年に入ってから、新型コロナウイルス感染症の継続的な感染拡大により世界的に景気が低迷し、多くの国や地...