列指向データベース

更新日:

用語解説

列指向データベースは、表のデータを行ごとではなく列ごとにまとめて格納・処理するデータベースです。多数行の一部列だけを走査して集計するOLAP処理に適し、行指向DBとは物理格納方式が異なります。

■ 試験で押さえるポイント

  • 売上表なら商品列、地域列、金額列をそれぞれ連続した領域へ格納します。SUM(金額)のような問合せは必要な列だけを読み、不要な列のI/Oを避けられます。

  • 同じ型で似た値が隣接するため、辞書符号化やランレングス圧縮が効きやすく、圧縮したままのベクトル演算と組み合わせて集計を高速化できます。

  • 一行全体の復元や一件ずつの挿入・更新では複数列領域へアクセスするため、行指向より不利になり得ます。列指向は分析、行指向はOLTPの点検索や行更新に向くのが基本です。

  • Cassandraなどのワイドカラム又は列ファミリー型は、行キーの下に疎な列集合をもつ分散データモデルであり、分析用の列指向格納とは別概念です。また、列指向でも関係モデルとSQLを採用できます。

■ 選択肢での判断ポイント

少数列を使う大量行の集計、列単位の圧縮、読取りI/O削減なら列指向です。一行を頻繁に追加・更新する取引処理なら行指向が有利で、列ファミリー型という名称だけで列指向と判断しません。

例: 50列・1億行の売上表から地域別の金額合計を求める場合、列指向なら地域列と金額列を中心に読みます。行指向のように各行の残り48列まで読む必要がなく、I/Oを大幅に減らせます。

音声で聞く

同じ分野の用語