ある人事部門が、従業員の勤怠レコードをCSV形式でシステムから出力しているが、データサイエンスチームが大規模な分析で使う際に毎回ほぼすべての列を読み込んでいる。CSVからParquetへの移行を検討する場合、Parquet形式が特に優れている点として最も正確なものはどれか。
- A. Parquetは行指向形式でトランザクション処理のレスポンスを最適化するために設計されている
- B. Parquetはテキスト形式のためあらゆるテキストエディタで直接編集できる
- C. ParquetはSQLを使わずにデータを分析できる独自クエリ言語を内蔵している
- D. Parquetは列指向のバイナリ形式で、特定の列だけ読む場合の I/O 削減と高い圧縮率が強みだが、行単位の追記書き込みにはCSVが向いている
解答と解説を見る
正解: D
Parquetの最大の強みは「列指向のバイナリ形式」にある。列指向により特定の列だけをディスクから読み込む(列プルーニング)ことができ、不要な列を読まずに済む分I/O が大幅に削減できる。また同じデータ型が連続する列は辞書符号化・RLE圧縮が効き、CSVに比べ圧縮率が格段に高い。一方でParquetは行単位の追記書き込みには向かず、CSVのように1行ずつ手軽に書き足すことは難しい。選択肢Bは誤りで、Parquetはバイナリ形式(非テキスト)のためテキストエディタでの直接編集はできない。選択肢Cは存在しない機能で、クエリはApache Spark・DuckDB・Azure Synapse などのクエリエンジンが担い、Parquetファイル自体にクエリ言語は内蔵されていない。選択肢Aは正反対で、Parquetは列指向形式であり行指向ではない。行指向はOLTPデータベースの特性である。