最近、Azureのチュートリアルを読んだり、実際に試してみたりすることが多いのですが、ファイルを扱うチュートリアルを見ていると、Parquetという拡張子のファイルが扱われていることが多いです。
仕事では扱う機会が今のところないのですが気になったので調べてみました。
Parquetの読み方
Parquetは、一般的にパーケイと呼ばれています。
Parquetとは?
Parquet(パーケイ)は、効率的なデータの保存と検索のために設計されたオープンソースのファイル形式です。
Apache Hadoop(ハドゥープ)という、データを複数のサーバに分散して、並列処理を行うミドルウェアで使用されることが多いファイル形式です。
Parquetの特徴
Parquetの特徴として以下のようなものがあるみたいです。
- オープンソースのファイル形式なのでコスト不要
- 多くの言語に対応している
- 列志向なので不要な列を読み込まずに分析クエリなどが高速になる
- 分析用途で使用される
- 効率の良いデータ圧縮と解凍
一般的に使用されているcsvやJSONよりも効率的と言われているファイル形式です。サクラエディタなどでは文字化けして普通には見ることができませんが、pythonやJavaなどの主要言語ではサポートされていますし、AzureのDataFactoryやSynapse Analyticsなどでもサポートされています。
Parquetを使用するメリット
普通にパソコンの操作を行う範囲では、特にメリットはなくむしろテキストエディターで見れないのどのデメリットしかないです。
ただ、大規模なデータをAzureなどのクラウドに格納する場合は、大きなメリットがあります。
列ベースのフォーマット
CSVやJSONのように行単位ではなく列ごとに整理される仕様なので、効率的な列単位のデータスキップが可能になるので、スキャンするデータの量が大幅に削減されます。Azureなどのクエリ実行時間ごとに課金される場合など、大幅にコスト削減が見込めます。
また、スキャンするデータ量も減るので速度も大幅に改善される可能性が高いです。
高効率なデータ圧縮と解凍
高効率なカラム単位の圧縮やエンコードが行われるので、ギガバイトやテラバイト級のデータを扱っている場合は大幅にストレージの使用量を削減できます。Azureなどのストレージ容量によって課金される場合は、大幅にコスト削減が見込めます。
Azureなどのクラウド環境でビッグデータを扱う場合は、コスト削減とパフォーマンス向上が同時に見込めるのでビッグデータはParquet形式が主流になりつつあります。確かにビッグデータを扱う場合は、Parquet形式にしない理由はなさそうですね!
まとめ
- Parquet(パーケイ)は、クラウド環境で大容量のファイルを扱うときは、主流になりつつあるファイルフォーマット
- ビッグデータを扱う際は、高速化とストレージの使用量を大幅に削減できる。
コメント