本文へスキップ
hdknr blog

列指向ストレージ

データを列ごとに格納するストレージ方式。分析クエリの I/O 効率と圧縮率を大幅向上

概要

行単位ではなく列単位でデータを格納。分析クエリで必要な列だけ読み込むため I/O が効率的で、同じ型のデータが連続するため圧縮率も向上。Parquet(ストレージ)、Arrow(メモリ)、DuckDB(エンジン)が列指向エコシステムを形成。

詳細

ファイルフォーマットの上に「テーブルフォーマット」が乗る

Parquet は「1 つのファイルの中身をどう並べるか」を決めるファイルフォーマット。S3 に Parquet を置くだけでも Athena や Spark から SQL を投げられるが、1 行の修正・過去の状態への巻き戻し・列の追加は難しい。

そこで「どのファイルの集まりがいまこのテーブルを構成しているか」を管理するテーブルフォーマットを上に重ねる。

どちらもデータ本体は列指向の Parquet で、競合ではなくレイヤーが違う。

関連ページ

ソース記事