Skip to Content

Parquet ファイルとは?

Apache Parquet ファイルは、分析クエリのカラム型データベースに使用されるオープンソースのデータ・ストレージ形式です。データセットは小さいものの、検索する行が数百万行ある場合は、性能を高めるためにカラム形式を使用する方がよいかもしれません。カラム型データベースは、行ごとにグループ化する標準的な行ベースのデータベースではなく、列をグループ化することでデータを保存します。Parquet ファイルは、複数のカラム型ストレージ形式の 1 つです。

Parquet ファイルとは?

Excel スプレッドシートや標準的なリレーショナル・データベースのように行をグループ化する代わりに、Apache Parquet ファイルは列をグループ化し、性能を向上させます。Parquet は、データベース自体ではなくカラム型のストレージ形式ですが、Parquet 形式はデータレイク、特に Hadoop で一般的です。カラム形式であるため、分析データ・ストレージやクエリでよく使用されます。

ほとんどの開発者は、行ベースのデータ・ストレージに慣れていますが、Excel スプレッドシートを回転させて、列が番号付きの行の代わりに表示されるようになることを想像してみてください。例えば、Parquet ファイルは、姓と名を 1 行にまとめた姓と名列のリストで顧客テーブルを保持する代わりに、列をまとめて格納し、データベースが多数の列で各行を検索するのではなく、特定の列からの情報をより迅速に返すことができるようにします。

Parquet ファイルのメリット

Parquet のファイルによるデータの保存方法に基づくクエリ性能とは別に、もう 1 つの主な利点はコスト効率です。Apache Parquet ファイルは、圧縮と解凍が効率的であるため、標準的なデータベース・ファイルほどのスペースを消費しません。ストレージ・スペースを削減することで、エンタープライズの組織は、ストレージ・コストを数千ドル削減できます。

カラム型ストレージの形式は、ビッグデータや分析クエリに最適です。Parquet ファイルは、画像、動画、オブジェクト、ファイル、標準データを保存できるため、あらゆるタイプの分析アプリケーションに使用できます。Parquet のファイル戦略はオープンソースであるため、データ・ストレージやクエリ戦略をカスタマイズしたい組織にも最適です。

Parquet ファイルの仕組み

Parquet ファイルには、列ベースのストレージが含まれていますが、メタデータも含まれます。列は、クエリの効率を高めるために各行グループでグループ化され、メタデータは、データベース・エンジンがデータを見つけるのに役立ちます。メタデータには、列、データを含む行グループ、スキーマに関する情報が含まれます。

Parquet ファイルのスキーマは、ストレージに対する列ベースのアプローチを示しています。スキーマ形式はバイナリ形式であり、Hadoop データレイク環境で使用できます。Parquet ファイルは任意のファイル・システムに保存できるため、Hadoop 環境に限定されません。

Parquet ファイル・ストレージ形式の利点の 1 つは、述語プッシュダウンと呼ばれる戦略です。述語プッシュダウンにより、データベース・エンジンは、処理の早い段階でデータをフィルタリングし、よりターゲットを絞ったデータをパイプラインに転送します。クエリの対象となるデータを減らすことで、クエリの性能が向上します。また、データ処理が減ることで、コンピュータ・リソースの使用量が削減され、最終的にはコストも削減されます。

Parquet ファイルの使用

Parquet ファイルは Apache ファイルであるため、複数のライブラリをインポートすれば、独自の Python スクリプトで作成できます。Python にテーブルがあるとします。

import numpy as np
 import pandas as pd
 import pyarrow as pa
 df = pd.DataFrame({'one': [-1, 4, 1.3],
                   'two': ['blue', 'green', 'white'],
                   'three': [False, False, True]},
                   index=list('abc'))
 table = pa.Table.from_pandas(df)

このテーブルでは、Parquet ファイルを作成できるようになりました。

import pyarrow.parquet as pq
 pq.write_table(table, 'mytable.parquet')

上記のコードは、ファイル「mytable.parquet」を作成し、テーブルを書き込みます。お気に入りのデータベースから読み取ってデータをインポートしたり、独自のクエリや分析にデータを使用したりできます。

また、Python を使用してファイルからこのテーブルを読むこともできます。

pq.read_table('mytable.parquet', columns=['one', 'three'])

write() 関数を使用すると、ファイルにテーブルを書き込むときにオプションを設定できます。Apache のサイトにはオプションのリストがありますが、ファイルの Apache Spark への互換性の設定例を以下に示します。

import numpy as np
 import pandas as pd
 import pyarrow as pa
 df = pd.DataFrame({'one': [-1, 4, 1.3],
                   'two': ['blue', 'green', 'white'],
                   'three': [False, False, True]},
                   flavor=’spark’)
 table = pa.Table.from_pandas(df)

まとめ

Parquet ファイルを Hadoop、Apache Spark、その他の互換性のあるデータベースに使用する場合は、Python を使用してファイル作成を自動化するか、分析のためにデータベース環境にファイルをインポートすることができます。Parquet ファイルは圧縮によりストレージ容量の要件を低減しますが、大規模なビッグデータ・サイロには過剰なストレージ容量が必要です。ピュア・ストレージの重複排除/圧縮技術は、ビッグデータ・ストレージを支援します。

こちらの資料もご覧ください!

11/2020
VMware Hybrid Cloud Solution Brief | Solution Brief
Hybrid cloud and container adoption are growing rapidly. Advance to an effortless, optimized VMware environment.
ソリューションの概要
3 ページ
ご相談・お問い合わせ
ご質問・ご相談

ピュア・ストレージ製品および認定についてのご質問・ご相談を承っております。ご連絡をお待ちしております。

デモのご用命

ライブデモのご用命を承っております。ピュアがいかにしてデータを成果に変えるお手伝いができるかをご説明します。 

ピュア・ストレージ・ジャパン株式会社

〒100-0014 東京都千代田区永田町 2 丁目 10-3 東急キャピトルタワー 12 階

 

一般: info-japan@purestorage.com

メディア: pr-japan@purestorage.com

03-4563-7443(総合案内)

閉じる
このブラウザは現在サポートされていません。

古いブラウザには、セキュリティ・リスクが存在する場合があります。ピュア・ストレージの Web サイトをより快適にご利用いただけるよう、最新のブラウザにアップデートしてください。