CSVとParquetの違い
データの保存形式を理解する

以前、仮想通貨の価格データを分析しようとした際に、データの保存形式で悩みました。 仮想通貨の価格データは、1分足や約定履歴など細かい粒度で取得すると、数年分を蓄積するだけでもデータ量が大きくなります。

当初はCSVファイルで保存していましたが、データ量が増えるにつれて読み込み等の処理速度が気になるようになり、より効率的な保存形式を探していました。 そこで採用したのがParquetです。

本記事では、Parquetとは何か?CSVとは何が違うのか?大量のデータを扱う際になぜ適しているのか?を整理します。

CSVもParquetも「ファイル形式」

最初に整理しておきたいのが、CSVとParquetの位置付けです。

CSVもParquetも、データをファイルとして保存するときの「ファイル形式(ファイルフォーマット)」です。

例えば、普段使うファイルには次のようなものがあります。

data.csv
data.json
data.xlsx

それぞれ、データを「どのようなルール・構造でファイルに保存するか」が異なります。 Parquetも、これらと並ぶ保存形式の一つです。

CSVとは何か

CSVはComma-Separated Valuesの略で、日本語にすると「カンマで区切られた値」という意味です。 例えば、仮想通貨の価格データを次のように保存するとします。

timestamp,symbol,price,volume
2026-08-01 10:00:00,BTC,12000000,1.5
2026-08-01 10:01:00,BTC,12010000,0.8
2026-08-01 10:02:00,BTC,12005000,2.1

1行目には、

timestamp
symbol
price
volume

という列名があります。 その下に、各時点のデータが1行ずつ並んでいます。

CSVの大きな特徴は、テキストとしてデータを保存していることです。 そのため、専用のソフトがなくてもテキストエディタで開けば内容を確認できます。

CSVのメリット

CSVの強みは、そのシンプルさです。 Excelなどの表計算ソフトはもちろん、Pythonをはじめとした多くのプログラミング言語や分析ツールから読み込めます。 人間がファイルを直接開いてデータの中身を確認することが可能です。

そのため、

  • 少量のデータを保存する
  • 他の人にデータを渡す
  • とりあえずデータを書き出して確認する
  • さまざまなソフトウェアとの互換性を重視する

といった用途では非常に便利です。

CSVの弱点

一方で、大量のデータを保存・分析しようとすると、CSVのシンプルさが弱点になることもあります。 例えば、先ほどのCSVでは、

2026-08-01 10:00:00,BTC,12000000,1.5

というレコードがすべて文字としてファイルに記録されています。 ファイル自体には「この列は整数」「この列は日時」といったデータ型の情報が記録されていません。 そのため、読み込む側でデータ型を指定したり、内容から推測したりする必要があります。

また、大量の数値データをテキストとして保存するため、後述するParquetと比較するとファイルサイズが大きくなりやすく、分析時の読み込みにも時間がかかることがあります。

さらに、分析に必要な特定の列だけを取得するといった処理も苦手です。CSVでは各レコード内に複数の列が並んでいるため、必要な列だけを使う場合でも、基本的にはファイル全体を解析しながら目的の列を取り出す必要があります。

Parquetとは何か

前述のとおり、ParquetもCSVと同じくデータをファイルとして保存するためのファイル形式です。 ただし、その設計思想はCSVと大きく異なります。 Parquetは一言で表すと、

大量のデータを効率よく保存し、分析することを意識して設計された列指向のファイル形式

です。 CSVのようにテキストエディタで直接開いて読むための形式ではなく、ソフトウェアから効率的に処理することを重視しています。

その結果、Parquetには次のような特徴があります。

  • データをバイナリ形式で保持する
  • ファイルにデータ型を保持できる
  • 圧縮効率が高い
  • 必要な列だけ効率よく読み込める
  • 大量データの分析に向いている

一方で、

  • テキストエディタで直接中身を読むのには向かない
  • CSVほど構造が単純ではない
  • 読み書きにはParquetに対応したソフトウェアやライブラリが必要

という弱点もあります。 このような差は、「行」と「列」のどちらを意識してデータを配置するかによって生じています。

CSVとParquetを「行指向・列指向」から理解する

例えば、次の4列を持つ仮想通貨の価格データがあるとします。

timestamp
symbol
price
volume

CSVでは、概念的には次のように1レコードずつデータが並びます。

timestamp1, BTC, price1, volume1
timestamp2, BTC, price2, volume2
timestamp3, BTC, price3, volume3

1行目に「ある時点のBTCの情報」がまとまり、その次に別の時点の情報が続きます。

これに対して、列指向のParquetは、イメージとしては次のように同じ列のデータをまとめて扱いやすい構造になっています。

timestamp
  timestamp1
  timestamp2
  timestamp3

symbol
  BTC
  BTC
  BTC

price
  price1
  price2
  price3

volume
  volume1
  volume2
  volume3

つまり、price列を指定することで

price1
price2
price3
...

のように、同じ列のデータをまとめて処理しやすくなっています。

データ分析を行う際は、特定の列だけを抜き出して可視化したり、分析モデルに渡すことがよくあります。 データが行指向のCSVで保存されている場合、特定の列だけを効率的に読み込むことができません。 一方で、列指向のParquetで保存されている場合、必要な列だけ選択して読み込むことができます。これにより、不要な情報を読み込む必要がなくなり、処理速度も速くなります。

Parquetはファイルサイズが小さくなりやすい

Parquetのもう一つ大きな特徴が圧縮効率です。 例えば、symbol列を考えてみます。

BTC
BTC
BTC
BTC
...

同じ列には、同じ種類・似た性質のデータが集まりやすくなります。 priceなら数値が並び、timestampなら日時が並び、symbolならBTCやETHなどの文字列が並びます。

このように性質の似たデータがまとまっていると、その特徴に適したエンコーディングや圧縮を適用しやすくなります。 Parquetではこうした仕組みを利用して、データを効率的に保存します。 そのため、特に大量のデータでは、CSVよりParquetの方がファイルサイズを小さくできるケースが多くあります。

ただし、

「Parquetなら必ずCSVの何分の1になる」わけではありません。

圧縮率はデータの内容やデータ型、使用する圧縮方式などによって変わります。

Parquetはデータ型を保持できる

CSVとの違いとして、もう一つ分かりやすいのがデータ型です。 例えば、

timestamp,symbol,price,volume
2026-08-01 10:00:00,BTC,12000000,1.5

というCSVがあったとします。 人間が見れば、

  • timestampは日時
  • symbolは文字列
  • priceは整数
  • volumeは小数

のように判断できます。 しかし、CSVそのものは基本的にテキストデータです。 読み込むソフトウェア側が、

  • 2026-08-01 10:00:00は日時型で扱おう
  • 12000000は整数として扱おう
  • 1.5は小数として扱おう

と一つずつ判断する必要があります。

一方、Parquetはスキーマ情報を持つことができ、各列のデータ型をファイル内に保持できます。 大量のデータを何度も読み書きするようになると、この違いも扱いやすさにつながります。

CSVとParquetの比較

ここまでの違いをまとめると、次のようになります。

比較項目 CSV Parquet
基本的な保存方法 テキスト バイナリ
人間による可読性 高い 低い
データ型 ファイル自体には明示的な型情報を持たない 型情報を保持できる
ファイルサイズ 大きくなりやすい 小さくなりやすい
圧縮 外部圧縮などは可能だが、形式自体は単純 列指向を活かした効率的な圧縮に対応
大量データの読み込み 不利になりやすい 得意
特定列だけの読み込み 効率面では不利 得意
対応ツール 非常に多い CSVほど普遍的ではない
人間が直接確認 簡単 専用ツールなどが必要
データ分析との相性 小規模なら十分 大規模な分析に強い

CSVとParquetは、それぞれ強みがあり、用途に応じて使い分けることが重要です。 例えば、

10行 × 5列

程度の小さなデータを誰かに渡すだけなら、CSVの方が便利なこともあります。 受け取った人はExcelでも開けますし、テキストエディタでも確認できます。 一方、

数千万行 × 数十列

のデータを繰り返し分析するのであれば、Parquetのメリットが大きくなります。

まとめ

今回、仮想通貨の価格データをどう保存するか調べたことをきっかけに、CSVとParquetの違いを整理しました。

CSVはテキスト形式で情報を保持するため人間が確認しやすく、対応しているツールも多くあります。Parquetは大容量データや列の抜き出しに強く、特にデータ分析で効果を発揮します。

状況に応じて、適した保存形式を選択することが重要です。

技術ブログとは関係ありませんが、個人的に大好きなフンドーキンの商品を紹介しています。

※以下には楽天アフィリエイトの広告リンクが含まれます。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

フンドーキン カボスぽん酢 360ml×3個セット 【送料込】
価格:2,040円(税込、送料無料) (2026/8/16時点)


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

フンドーキン 深煎り焙煎ごまドレッシング 190ml×3個セット 送料込
価格:1,890円(税込、送料無料) (2026/8/16時点)


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

フンドーキン 生詰あわせみそ 850g×2個セット 【送料込】
価格:2,080円(税込、送料無料) (2026/8/16時点)