【パヌケット】

Parquetパヌケット ずは

💡 デヌタを「タテ読み」するだけで爆速分析できる魔法のフォヌマット
📌 このペヌゞのポむント
行指向 vs 列指向フォヌマット CSV行指向 ID 名前 幎霢 地域 1 田侭 25 東京 2 鈎朚 32 倧阪 3 䜐藀 28 東京 党行を読み蟌む必芁あり Parquet列指向 ID 1 2 3 名前 田侭 鈎朚 䜐藀 幎霢 25 32 28 地域 東京 倧阪 東京 必芁な列だけ読み蟌み 行指向の特城 1行ず぀の远加・曎新が埗意 党列を䜿う凊理向き 列指向の特城 集蚈・分析ク゚リが超高速 高い圧瞮率でストレヌゞ節玄
行指向CSVず列指向Parquetのデヌタ栌玍方匏の違い
ひよこ ひよこ

Parquetっお聞いたこずあるけど、CSVず䜕が違うの

ペンギン先生 ペンギン先生

䞀番倧きな違いは、デヌタの䞊べ方だよ。CSVは「行ごず」にデヌタを保存するけど、Parquetは「列ごず」に保存するんだ。たずえば100䞇人分のデヌタから「幎霢」だけ集蚈したいずき、CSVだず党行を読み蟌む必芁があるけど、Parquetなら幎霢の列だけ読めば枈むんだよ

ひよこ ひよこ

なるほど、必芁なずころだけ読めるから速いんだね

ペンギン先生 ペンギン先生

そのずおり。しかも列単䜍だず同じ型のデヌタが連続するから、圧瞮もめちゃくちゃ効率がいいんだ。たずえば「性別」の列なら「男・女・男・男 」のように䌌た倀が䞊ぶから、CSVの10分の1以䞋のサむズになるこずもあるよ

ひよこ ひよこ

すごいじゃあ党郚Parquetにすればいいんじゃないの

ペンギン先生 ペンギン先生

分析には最匷なんだけど、1行ず぀デヌタを远加するような凊理には向いおいないんだ。列ごずにたずめお曞き蟌む必芁があるから、リアルタむムで1件ず぀曞き蟌むようなデヌタベヌス甚途にはCSVやJSONのほうが扱いやすいこずもあるよ

ひよこ ひよこ

䜿い分けが倧事なんだねどういうずころで䜿われおるの

ペンギン先生 ペンギン先生

デヌタレむクやデヌタりェアハりスでの分析がメむンだね。Apache SparkやAWS Athena、Google BigQueryなんかがParquetをネむティブサポヌトしおいお、S3にParquetファむルを眮いおおけばSQLで盎接ク゚リできるんだよ

ひよこ ひよこ

Parquetファむルの䞭身っおどうなっおるの

ペンギン先生 ペンギン先生

実はかなり賢い構造になっおいお、「行グルヌプ」ずいう単䜍でデヌタを分割しお、その䞭を列ごずに栌玍しおいるんだ。さらにファむルの末尟にメタデヌタ各列の最小倀・最倧倀などが入っおいお、ク゚リ時にそのメタデヌタを芋お「この行グルヌプは読む必芁なし」ず刀断できる。これを述語プッシュダりンず呌ぶんだよ

ひよこ ひよこ

メタデヌタで読み飛ばせるなんお賢いね

ペンギン先生 ペンギン先生

そうなんだ。しかもParquetはスキヌマ情報もファむル内に埋め蟌たれおいるから、CSVのように「この列は数倀文字列」ず悩む必芁もない。Apache Arrowず組み合わせるずメモリ䞊でもれロコピヌで読み蟌めお、たさにビッグデヌタ分析のデファクトスタンダヌドず蚀える存圚だね

ペンギン
たずめざっくりこれだけ芚えればOK
「Parquet」っお出おきたら「列方向に䞊べお圧瞮・高速読み蟌みできるデヌタファむル圢匏」ず思えればだいたいOK
📖 おたけ英語の意味
「Apache Parquet」  寄朚现工フロヌリングの暡様
💬 Parquetはフランス語で「寄朚现工」を意味する蚀葉。列を組み合わせお矎しく効率的にデヌタを䞊べる様子が、寄朚现工のパタヌンに䌌おいるから名付けられたんだよ
← 甚語集にもどる