Articles

Parquet

Posted on

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%の節約

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です