NoSQLに属するカラムストア型DBについて、もう少し調べてみた。
カラムストア型DBの特徴
レコードとカラムと聞くと、RDBMSと同じ感じがしてしまうが、1レコード毎に自由にカラムを構成できるところが大きく異なるということがわかった。
レコード毎にカラム構成を変えられるということは、データ構造の変更に対して柔軟性を持てるので、業務要件の変更頻度が高く、それに伴いカラム構造の変更も多く発生する様なシステムでの使用に適しているのだろう。
過去に携わっていたシステムでは、要件変更に伴うAPおよびDBテーブルのカラム追加が頻繁に発生する傾向にあるものの、業務処理をほぼ止められないからテーブル定義変更もままならないので、将来を見越して予備のカラムをあらかじめ持たせたテーブル設計をしていたので、その観点ではカラムストア型が適していたと思う。
カラムナDBとは違う
カラムストア型DBは、Sybase IQやNetezzaなどのカラムナDBとは違う点には注意が必要だ。
カラムナDBは、ざっくり言うと列方向にデータを格納した(列指向)RDBで、列方向の集計・検索処理に強いという特徴を持ったDBなので、カラムストア型DBの様なレコード毎に異なるカラム構成を持たせるということは、基本的にできない。
カラムストア型DBという字面だけ見たとき、私もカラムナDBのことかな?と勘違いしていたので、今回の調査でちょっと頭がスッキリした。
主なカラムストア型DB
カラムストア型DBのプロダクトを調べてみると、よく見かけたのが以下2つ。
- HBase
- Cassandra
両者を比較する様なイメージで特徴をピックアップしてみたものが以下。
HBase
- GoogleのBigtableを参考に開発されたオープンソースソフトで、Apache Hadoop環境で稼働する分散データベース
- マスタ型(1つのマスタノードが配下の複数ノードを管理する)のアーキテクチャ
- RDBの様に強い整合性(最新の更新されたデータを必ず返す)を保証
Cassandra
- FacebookのInboxサーチのために開発され、オープンソース化されたもの
- P2P型(各ノードが対等にお互いを管理)のアーキテクチャ
- 基本的には結果整合性(ある瞬間では古いデータを返すノードがいる)だが、強い整合性にすることも可能
今回の調査は、NoSQLについて調べた際の書籍を基に調査しました。
NOSQLの基礎知識 (ビッグデータを活かすデータベース技術)
著者:本橋信也, 河野達也, 鶴見利章, 太田 洋(監修)
出版社:リックテレコム
発売日:2012/04/15
次の記事:グラフDBについて調べてみた
前回の記事:ドキュメントDBについて調べてみた