アーカイブ (コンピュータ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

アーカイブ: archive)とはコンピュータにおいてデータ群を纏めて一体で保存することを指す[1][2]。データと、ファイル作成日時や作成者などの付随するメタデータを関連づけ長期間保存する目的で用いられる。巻物化。

一つ以上のファイル(およびディレクトリ)とメタデータとをアーカイブ化したファイルをアーカイブファイルと呼ぶ。加えて可逆データ圧縮を併用し、アーカイブファイルのサイズを縮小する場合がある。

特徴[編集]

アーカイブはデータの書き換えを想定せずオリジナルのファイルを長期間保存する。バックアップと似た概念でしばしば混同されるが、バックアップはデータの最新版を保存して災害時にロールバックしやすくするものである[1][2]

電子メールを例に考える。1年前のメールは今日届いたメールにくらべて重要度は低いが、後で検索・閲覧できるようにしておく事も必要となる。この過去のメールは然程素早く取り出せる必要がないとすれば、「今日のメールは高速アクセスできるストレージへ」、「過去メールは低速だがメディアが安価なストレージへ」と階層化して保存する手法が考えられる。これは階層型ストレージ管理技術と呼ばれ、データの検索性を保持したままストレージのコストを抑えられる。メールアーカイブの身近な例はGmailにある[3]。見終わったメールを削除ではなくアーカイブすることで、受信メールには表示されないが検索するだけで閲覧出来る。

ファイルアーカイバ[編集]

一つ以上のファイルメタデータを一つのファイルへ変換するユーティリティソフトウェア。単にアーカイバ英語: archiver)と呼ぶこともある。

UNIXにおけるアーカイバ[編集]

artarcpioなどのコマンドラインツールを使いアーカイブファイルを作成する。これらは圧縮機能を持たない。

アーカイブファイルの圧縮[編集]

UNIXではgzipbzip2xzなどの追加のツールと組み合わせて圧縮を行う。圧縮の過程でファイル名に拡張子が追加される。たとえば、ファイル一式をtarでアーカイブして、作成されたアーカイブファイルをgzipで圧縮したファイルの拡張子は.tar.gzとなる。

Windowsにおけるアーカイバ[編集]

Microsoft Windowsに標準で組み込まれているアーカイバ (ZIP圧縮フォルダCAB圧縮フォルダLZH圧縮フォルダ)や、WinRAR7-zipなどの多くのサードパーティのアーカイブソフトウェアは、グラフィカルユーザーインターフェイスを使用して操作を行う。また、コマンドラインインターフェイスも提供するものもあるが、Windowsには標準搭載されていない。Windowsで利用するアーカイバは、アーカイブ機能と圧縮機能の両方を一緒に行う。ソリッド圧縮は、Windows自体はサポートしていないが、WinRARと7-zipなどサードパーティの製品では提供されるものもある。

アーカイブファイル[編集]

ファイルアーカイバによって変換されたファイルをアーカイブファイルと呼ぶ。日本語では書庫とも呼ばれる。アーカイブファイルを作成する工程をアーカイブあるいは書庫化と呼ぶ。アーカイブファイルのファイル形式はartarが代表的である。関連項目も参照。アーカイブファイルから元のファイルを取り出す操作を展開英語: extract)、解凍、または抽出と呼ぶ。

ファイル圧縮[編集]

アーカイブではファイル圧縮することが多い。ただし、ファイル圧縮は必ずしもアーカイブファイルを作成することを意味しない。ZIP等。その一方でアーカイブファイルの中から1つのファイルだけを解凍することを考慮したフォーマットもある。例えばZIPでは圧縮した後にアーカイブする。他にも圧縮時にデータを決まったサイズのブロックに分けて符号化することで、目的のファイル周辺だけを解凍して取得可能にする方式もある。

ファイルをデータ圧縮する場合には可逆圧縮が用いられる。ファイル圧縮の方式の中には、複数のファイルを1つにまとめて扱えるようにするアーカイブ機能を兼ね備えるものもある。

ファイル圧縮は、パーソナルコンピューターの分野では1980年代後半頃からパソコン通信の発達とともにLHAZIPなどの圧縮方式が誕生した。

主な圧縮アーカイブ形式[編集]

  • ZIP - パーソナルコンピューターの分野で普及している圧縮形式。圧縮方式は主にDeflate法が使用される。
  • 7z - 7-Zipで扱うことの出来る多機能な高圧縮形式。オープンソース。圧縮方式は主にLZMA法が使用される。
  • RAR - マルチメディア系の圧縮が得意な高圧縮形式
  • ZPAQ - 増分バックアップやロールバックに対応した圧縮最重視の超高圧縮形式
  • CAB (Cabinet archive) - Windowsが標準で利用できる圧縮形式
  • GCA, DGCA (G Compression Archive) - テキストデータに強い日本産圧縮形式
  • LHA - 純日本産の圧縮形式。LZHとも
  • StuffIt - Macintosh系列で利用される圧縮形式
  • Compact Pro - Macintosh系列で利用された圧縮形式。開発は終了している。

主なストリーミング圧縮形式[編集]

複数ファイルの圧縮ではtarなどの無圧縮アーカイブ形式と共に使われる。例えばtarでアーカイブした後にgzipで圧縮した場合は拡張子が .tar.gz となる。Webブラウザで使える形式も存在する (現行は☆、過去は★)[4]

  • pack (*.z) - UNIXの初期からある形式。今ではほとんど使われず、compressに取って代わられている。
  • compress★ (*.Z) - packの置き換えとして商用UNIXで標準で使われている形式。今ではほとんど使われず、gzipに取って代わられている。
  • gzip☆ (GNU Zip; *.gz) - 商用UNIXに標準のcompressにはLZWアルゴリズムの特許の問題があり、フリーの代用品として開発された。圧縮方式はDeflate法が使用される。
  • Deflate☆ - HTTPプロトコルで使われている圧縮方式。gzipと同じアルゴリズムだがヘッダが異なる。
  • bzip (*.bz) - 特許問題のために配布が中止された高圧縮形式。算術符号使用。
  • bzip2 (*.bz2) - 主にUNIXで使われるオープンソースの高圧縮形式。bzipの後継として開発された。
  • xz (*.xz) - bzip2と同様に主にUNIXで使われるLZMAアルゴリズムによるオープンソースの高圧縮形式。

圧縮率だけでなく圧縮と解凍の高速さも目指したものが存在する。

  • LZO (*.lzo) - 古くから存在する高速な圧縮形式。
  • Snappy英語版 (*.sz) - Googleの開発した高速な圧縮形式。
  • LZ4 (*.lz4) - 高速な圧縮形式。Unityで使われている[5]NVIDIAがGPU実装のnvcompを提供している[6]
  • Zstandard (Zstd; *.zst) - Facebookの開発した高速な圧縮形式。
  • Brotli☆ (*.br) - Googleの開発した高速な圧縮形式。
  • LZFSE (*.lzfse) - Appleの開発した高速な圧縮形式。
  • Kraken - RAD Game Toolsの開発した高速な圧縮形式。PlayStation 5がKrakenのアクセラレータを搭載している[7]
  • LZHAM (*.lzham) - 圧縮率が高いながらも解凍が比較的高速な圧縮形式。

エラーの検出と回復[編集]

アーカイブファイルには、エラー検出のためのパリティチェックチェックサムが含まれることがある。たとえば、zipファイルは巡回冗長検査(CRC)を実装している。RARアーカイブには、冗長なエラー訂正データ(リカバリレコードと呼ばれる)が含まれる。

アーカイブファイルには、特に複数ファイルアーカイブ内の欠落ファイルの回復において、追加のエラー検出と回復を可能にする個別のパリティアーカイブ(PAR)ファイルが付随する場合がある。

脚注[編集]

  1. ^ a b “データアーカイブとバックアップの使い分けをどうするか”. ITMedia (2005年10月21日). 2021年3月10日閲覧。
  2. ^ a b “アーカイブ”をバックアップと混同するなかれ”. TechTarget Japan (2009年1月5日). 2021年3月10日閲覧。
  3. ^ Gmail「アーカイブ」の使い方──格納場所からメール検索、元に戻す方法まで”. appllio (2020年6月2日). 2021年3月10日閲覧。
  4. ^ Content-Encoding Mozilla
  5. ^ Build Settings Unity Technologies
  6. ^ GitHub - NVIDIA/nvcomp: A library for fast lossless compression/decompression on the GPU NVIDIA
  7. ^ 西川善司の3DGE:Mark Cerny氏のPS5技術解説プレゼンテーションを読み解く(前編)。ここまで分かったPS5のSSDとGPUの詳細 4Gamer.net 2020年3月20日

関連項目[編集]