「ロー(行)」単位に加えて、「カラム(列)」単位のデータアクセスを可能にする、ハイブリッド型データベースが増えてきた。IBMのDB2は新版でハイブリッド型に姿を変えた。SAP HANAやGreenplum Database、Microsoft SQL Server 2012もハイブリッド型。ビッグデータを高速処理したいというニーズが、後押ししている。
ハイブリッド型のデータベース製品が増えてきた。データベースの「テーブル(表)」に対して、従来の「ロー(行)」単位に加え、「カラム(列)」単位のアクセスを可能にしている。トランザクション系の処理はロー単位、データウエアハウス系の分析処理(アナリティクス)はカラム単位と使い分けることで、データベース全体のパフォーマンスを引き上げることが狙いだ。
2013年6月に提供開始予定の「IBM DB2」の新版10.5も、カラム単位のアクセスを可能にし、ハイブリッド型に変わった。同社が「BLUアクセラレーション」と呼ぶ技術を使うことで、ロー形式とカラム形式のテーブルを、一つのデータベースの中に定義できる(図1)。
「DB2にカラム型機能が付いたので、カラム型データベース製品を別途導入する必要がない。ミッドレンジのデータベースを利用するユーザーも、分析ソリューションとして手軽にカラム単位のアクセス機能を使ってほしい」(日本IBM ソフトウェア事業 Information Management マーケティングマネージャーの中野雅由氏)。
DB2でカラム形式のテーブルを作るには、テーブルを定義する際に“ORGANIZE BY COLUMN”を追記すればよい。「ユーザーから見ると、従来のロー形式のテーブルと、カラム形式のテーブルが透過的に使える。両テーブルのジョインも可能だ」(日本IBM ソフトウェア事業 インフォメーション・マネジメント事業部 技術統括部長の大塚知彦氏)。
カラム形式テーブルの主な使い道は、バッチ処理で行うデータ集計処理のスピードアップだ。例えば売り上げ明細から、店舗名と店舗ごとの合計金額を集計するとき、カラム単位のアクセスではその二つのカラムのデータだけをメモリーに読み込む。ところがロー単位のアクセスでは、集計に不要なカラムを含めて、該当レコードを全てメモリーに読み込む。
カラム形式は、ロー形式に比べてデータ圧縮が利きやすい。「日付」や「住所」などカラム単位で格納されているデータは、重複した値を持っている可能性が高いからだ。データ圧縮により、1回でメモリーに読み込めるデータ件数が増えれば、I/O効率を向上できる。DB2 10.5では、データの順序を保持するデータ圧縮機能により、圧縮済みのデータを解凍することなく処理できる。
カラム形式を加えたハイブリッド型を初めて扱う場合でも、「過去のDB2の資産を継承できるし、データベースのユーティリティーやエンジニアのスキルもそのまま生かせる」(大塚氏)。