【パーケット】
Parquet(パーケット) とは?
最終更新:
💡 必要な列を選んで読む、分析向けのファイル形式
分析用のデータを列ごとにまとめて格納する、オープンソースのファイル形式。必要な列の読み込みや圧縮を効率化できるが、速度や容量はデータ・設定・処理によって変わる。
📌 このページのポイント
- 行グループの中を列ごとのまとまりに分けて保存する
- 必要な列の選択や、統計情報による読み飛ばしを利用できる
- 型や繰り返しに合った符号化・圧縮で効率を高める
- 性能や利用できる機能はデータと読み書きするツールによる
CSVと何が違うの?
必要なところだけ読めるから速いんだね!
読む量を減らせるのが利点だよ。同じ型の値をまとめ、繰り返しに合った符号化や圧縮も選べる。ただし何倍速い、何分の一の容量になるという固定の効果はないので、実際のデータと処理で比べるんだ。
じゃあ全部Parquetにすればいい?
どういうところで使われているの?
ファイルの中身はどうなっているの?
行グループ、その中の列チャンク、さらにページという構造だよ。末尾のメタデータを読んで列の場所を調べる。最小値・最大値などの統計があれば、条件に合わない範囲を読み飛ばせることもある。ただし統計の有無や活用は書き手・読み手によるんだ。
型やメモリ上の形式も同じ?
ファイルにはスキーマがあるけれど、読み取りツールごとに対応する型や機能を確認する必要があるよ。Apache ArrowにもParquetを読み書きする機能がある。ただしArrowとParquetの型は一対一に対応するとは限らず、圧縮されたファイルをそのまま万能なゼロコピーで扱えるとは考えないでね。
まとめ:ざっくりこれだけ覚えればOK!
「Parquet」って出てきたら「列ごとに保存し、必要な部分を効率よく読むためのデータファイル形式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Apache Parquet」 = Apacheの列指向データファイル形式
💬 Apache Parquetはプロジェクトと形式の名称。ここでは木材の床ではなく、分析用データの格納形式を指しているよ。