Parquetは、Hadoopエコシステムのどのプロジェクトでも利用できるオープンソースのファイルフォーマットです。
Parquetは、ネストされた名前空間の単純なフラット化よりも優れた、レコードのシュレッディングとアセンブリアルゴリズムを使用しています。 Parquetは複雑なデータを一括して処理するように最適化されており、効率的なデータ圧縮とエンコーディングタイプのためのさまざまな方法を備えています。 このアプローチは、特に大きなテーブルから特定の列を読み取る必要があるクエリに最適です。
列挙型フォーマットでデータを保存するメリット:
- Apache Parquet のような列挙型ストレージは、CSV のような行ベースのファイルと比較して、効率性を高めるように設計されています。 クエリを実行する際、列挙型ストレージでは、関連性のないデータを非常に素早くスキップすることができます。 その結果、行指向のデータベースに比べて、集計クエリにかかる時間が短くなります。
- Apache Parquet は、ゼロから構築されています。 そのため、高度なネストされたデータ構造をサポートすることができます。
- Parquet は、柔軟な圧縮オプションと効率的なエンコーディング スキームをサポートするように構築されています。 各カラムのデータタイプは非常に似ているため、各カラムの圧縮は簡単です(これにより、クエリはさらに高速化します)。
- Apache Parquetは、AWS Athena、Amazon Redshift Spectrum、Google BigQuery、Google Dataprocなどのインタラクティブでサーバーレスなテクノロジーとの相性が抜群です。
ParquetとCSVの違い
CSVはシンプルで広く普及しているフォーマットで、ExcelやGoogle Sheetsなどの多くのツールで使用されており、他にも多数のツールでCSVファイルを生成することができます。
- Amazon Athena と Spectrum は、クエリごとにスキャンされたデータ量に応じて課金されます。
- Google と Amazon は、GS/S3 に保存されたデータ量に応じて課金されます。
Parquetのおかげで、ユーザーは大規模なデータセットのストレージ要件を少なくとも3分の1に減らすことができ、さらにスキャンとデシリアライズの時間が大幅に改善されたため、全体的なコストを削減することができました。
次の表は、CSVからParquetにデータを変換することで得られる節約とスピードアップの比較です。
データセット |
Amazon S3上のサイズ |
クエリの実行時間 td |
スキャンされたデータ |
コスト |
|||
CSVファイルとして保存されたデータ |
1 TB |
236秒 |
1.15 TB |
Apache Parquet Formatで保存されたデータ |
130 GB |
6.78秒 |
2.51 GB |
節約 |
87% Parquetを使用した場合 |
34倍の速さ |
99%少ないデータのスキャン |
99.7%の節約 |
。