CSV を開いて gzip か ZIP を選ぶと、準備ができしだい圧縮ファイルがダウンロードされます。orders.csv は orders.csv.gz または orders.zip になります。逆に .gz や .zip ファイルを開くと、中のファイルに復元できます。バイト列を解析したり変更したりしないため、文字コード、区切り文字、引用符、改行コード、BOM はすべて元のとおりに戻ります。圧縮はブラウザー内で行われ、ファイルがアップロードされることはありません。
CSV を圧縮・復元する手順
- ファイルを開くか、ドロップします。
.gzまたは.zipで終わるファイルの場合はツールが復元に切り替わり、それ以外のファイルは圧縮されます。 - gzip か ZIP を選び、圧縮レベルを 1~9 から選びます。既定の 6 は、サイズと処理時間の一般的なバランスです。
- 処理を開始します。結果がダウンロードされ、圧縮前と圧縮後のサイズとその比率が表示されます。
gzip と ZIP のどちらにするか
Gzip(.csv.gz) | RFC 1952 で定められた、1 つの圧縮ファイルです。コマンドライン ツール、データ ウェアハウス、多くのインポート処理で .csv.gz を直接読み込めます。元のファイル名が中に保存されます。 |
|---|---|
ZIP(.zip) | 元のファイル名で 1 つのファイルを格納したアーカイブです。Windows や macOS ではダブルクリックで開けるため、メールの添付ファイルや、コマンドライン ツールを使わない相手に渡す場合に適しています。 |
| 圧縮レベル | 1 は最も短い時間で処理し、9 はファイルを小さくするために最も多くの処理を行います。一般的な CSV では 6 と 9 の差は小さく、小さなファイルでは差がないこともあります。 |
| 復元 | .gz ファイルからは、中にある 1 つのファイルが復元されます。.zip からは、含まれるすべてのファイルが復元されます。フォルダーは飛ばされ、名前からフォルダーのパスは除かれます。ファイルが 1 つの場合はすぐにダウンロードされ、複数の場合はそれぞれにダウンロード ボタンの付いた一覧が表示されます。 |
gzip のヘッダーや ZIP のエントリに書き込むタイムスタンプは現在時刻ではなく固定値なので、同じファイルを同じレベルで圧縮すると、毎回まったく同じバイト列になります。そのため、出力のチェックサムを取ったり、バージョン管理で保管したりしても問題ありません。
そのまま保たれるもの
- ファイルは表ではなくバイト列として扱われるため、文字コードの変換は一切行いません。Windows-1252 や Shift_JIS の書き出しファイル、セミコロンの区切り文字、改行コード CRLF、UTF-8 の BOM も、すべてそのまま復元されます。値を読み取ることもないため、先頭のゼロや桁数の多い ID もそのままです。
- 引用符で囲まれた改行や不正な位置の引用符は、圧縮には関係ありません。形式に誤りのある CSV でも、そのまま圧縮・復元されます。ファイル自体を確認するには、CSV のチェック を使ってください。
- gzip では、RFC 1952 の規定どおりファイル名を Latin-1 で保存します。そのため、日本語、中国語、キリル文字など、ほかの文字を使ったファイル名は正しく戻らないことがあります。そのような名前のファイルには ZIP を使うか、復元後にファイル名を変更してください。
- ZIP の中に、別々のフォルダーにある同じ名前のファイルが 2 つ含まれている場合は、どちらも同じ名前で復元されます。ダウンロードするときに名前を変更してください。
うまくいかない場合
- gzip / ZIP ファイルではないと表示される。ファイルの先頭のバイトが、gzip や ZIP の識別情報(シグネチャ)になっていません。名前が
.gzになっているだけの通常の CSV か、7z や RAR など別の種類のアーカイブである可能性があります。圧縮したい場合は、gzip か ZIP に切り替えてください。 - gzip のデータが破損しているか不完全だと表示される。ファイルの末尾に保存されているチェックサムまたは長さが一致しません。通常は、ダウンロードが途中で止まったことが原因です。ファイルをもう一度取得してください。
- ZIP のデータが破損しているか、未対応の方式が使われていると表示される。復元できるのは、無圧縮(Stored)と Deflate のエントリだけです。Deflate64、BZIP2、LZMA などの方式には対応していません。パスワード付きの ZIP ファイルにも対応していないため、パスワードを入力できるアーカイブ ツールで展開してください。
- 圧縮してもほとんど小さくならない。ランダムな ID やハッシュ値など、値の種類が多い CSV は、繰り返しの多いデータほど圧縮されません。また、形式上一定のヘッダーが付くため、非常に小さなファイルではほとんど効果がありません。型のある列形式のデータであれば、Parquet に変換するとさらに小さくできます。
大きなファイルとプライバシー
このツールには 25 MB の制限はありません。ファイルを表として読み込むことはなく、4 MB ずつ読み込んでストリーミングで圧縮・復元するためです。復元では、復元したデータの合計が 4 GB を超えた時点でエラーとなり処理を中止します。これにより、展開すると巨大なサイズになる「ZIP 爆弾」からタブを保護します。
処理はこのタブ内のバックグラウンドのワーカーで実行され、キャンセル で中止できます。アップロードは一切行いません。大きなファイルを圧縮ではなく分けて小さくするには、CSV の分割 を使ってください。分割したファイルを 1 つの ZIP としてダウンロードすることもできます。
例
セミコロン区切りで、小数点にコンマを使い、SKU に先頭のゼロがある 12 行の受注データ(先頭の数行を表示)で、合計 374 バイトです。ファイルがとても小さいため、gzip ではレベル 1、6、9 のいずれでも同じ 185 バイトになります。ZIP ではアーカイブのヘッダーが大きくなります。どちらのファイルを復元しても、374 バイトすべてが変わらずに戻ります。
order_id;region;sku;qty;amount SO-1001;North;00123;1;19,90 SO-1002;South;00124;2;38,90 SO-1003;East;00125;3;57,90 SO-1004;West;00123;4;76,90 …
orders-march.csv.gz 185 bytes (49.5 %), restores to orders-march.csv orders-march.zip 296 bytes (79.1 %), one entry: orders-march.csv Restored orders-march.csv 374 bytes, identical to the original
よくある質問
複数の CSV ファイルを 1 つの ZIP に圧縮できますか?
このページではできません。圧縮できるのは一度に 1 ファイルです。CSV の分割 では分割したすべてのファイルを 1 つの ZIP でダウンロードでき、このページで ZIP を復元すると中のすべてのファイルが戻ります。
.csv.gz ファイルも CSV なのですか?
gzip で圧縮した CSV です。gunzip や、多くのデータベースのインポート コマンド、データ処理ライブラリなど、gzip に対応したツールでは直接読み込めます。対応していないツールでは先に .csv に復元する必要があり、このページでそれを行えます。
圧縮によってデータが変わることはありますか?
ありません。gzip と ZIP の圧縮は可逆で、このツールは CSV を解析しないため、復元したファイルは元のファイルとまったく同じバイト列になります。