Parquet
Parquetは列指向のバイナリストレージ形式である。Apacheプロジェクトであり、OLAP分析に使われ、列単位の圧縮により効率的なクエリを実現する。
目的
列指向ストレージと符号化を提供し、分析クエリが必要な列だけを読めるようにして、I/Oを大幅に削減する。
メカニズム
ファイルはロウグループに分割され、各ロウグループは列チャンクとして列データを格納する。列内のデータはRLE/辞書/差分符号化で圧縮される。フッターにスキーマと統計情報(min/max)を格納する。読み取りは列ごとに述語をプッシュダウンしてフィルタする。
ユースケース
- Spark/Hiveでの分析クエリ
- データレイク(Iceberg、Delta)
- BIレポートのデータソース
- S3/Azureのビッグデータ格納
例
- 入力
table dataOutputA columnar compressed fileStored by column
よくあるエラー
- Too many small files inflates metadata overhead
- Consolidate into larger row groups