.parquet
Data
Apache Parquet(カラムナーストレージ)
Parquetは大規模データセットに対する分析クエリ用に最適化されたカラムナーストレージフォーマットです。行ごとではなく列ごとにデータを保存することで、効率的な圧縮と必要な列だけを読み取る高速クエリを実現します。
MIMEタイプ
application/vnd.apache.parquet
種類
バイナリ
圧縮
無劣化
メリット
- + Excellent compression through columnar encoding
- + Fast analytical queries — reads only needed columns
- + Predicate pushdown skips irrelevant row groups entirely
- + Standard in Spark, DuckDB, Pandas, and cloud data lakes
デメリット
- − Not suited for transactional row-level updates
- − More complex to write than CSV or JSON
- − Schema evolution has some limitations
.PARQUETを使うタイミング
データレイク、分析ワークロード、Spark/Pandas処理、カラムナークエリが主流な大規模データセットにParquetを使用してください。
技術的詳細
Parquetファイルにはrow groupが含まれ、それぞれがページレベルエンコーディング(dictionary、RLE、delta)を持つcolumn chunkに分割されます。列ごとの統計情報(min/max)が述語プッシュダウンを可能にします。Dremelエンコーディングによりネストデータをサポートします。
歴史
TwitterとClouderaがGoogleのDremel論文に触発され、2013年にParquetを作成しました。Apacheプロジェクトとなり、現在はデータレイク、Spark、モダンな分析プラットフォームのデフォルトフォーマットです。