「カラム型DB」はリレーショナルデータベース(RDB)の一種。データを「ロー(行)」ではなく、「カラム(列)」単位に扱う。「来店日時別の売り上げ集計」といった処理を高速にこなせるため、データウエアハウス(DWH)の性能向上策として注目度が高まっている。ローとカラムのどちらでもアクセス可能な製品も登場してきた。
カラム型DBと一般的なRDB(ロー型DB)のアクセス手法を比較していこう。
RDBは、Excelなど表計算ソフトと同様に表(テーブル)構造でデータを格納する。表には、データ項目を指定する「カラム(列)」がある。例えば飲食店の売り上げ明細であれば、売上日や店舗名、来店日時、会員番号、お客様名、主担当、レジ担当、メニュー、数量、税抜金額、消費税、合計金額などがデータ項目となる。各データ項目に値が入った1件のレコードが「ロー(行)」だ。
データウエアハウス(DWH)には時系列で大量のデータが蓄積されている。そのデータを取り出して分析する際は、特定のカラムが呼び出されることが多い。この特性に着目し、カラム型DBはバッチ集計処理を高速化している。
先の売り上げ明細から、来店日時と合計金額を集計しようとしたとき、カラム型DBはその二つのカラムにあるデータだけをメモリー上に読み込む。ところがロー単位で読む一般的なDBでは、該当レコードをすべてメモリー上に読み込み、その後、不必要なカラムのデータを省かなければならない。
カラム型DBのSybase IQは、ページと呼ぶ単位でデータを入出力する。カラムごとにデータをページに格納しておくことで、必要なカラムのみを呼び出せる(図)。「カラムを狙い打つので効率的にディスクI/Oができる。メモリー上で不必要なデータを取り除く手間もいらない」(サイベース プロフェッショナルサービス本部の原利明 本部長)。
カラム型DBはデータ圧縮が効きやすいことも利点だ。ページ単位で格納されている同じカラムのデータは、似たようなもの、重複したものが多い。データ圧縮により1ページに格納されるデータが増えれば、一度に読み込めるデータも増えI/O効率は上がる。