Key Value Storeのデータモデル

2011 年 5 月 30 日 by Cooney

NoSQLという言葉をあちこちでよく聞くようになってずいぶん経ちますが
今ひとつイメージが沸かないといった人も多いようですし、私もそうです。
が、そうも言っておられません。
使い慣れたリレーショナルデータベースとどう違うか、
今回はNoSQLのうちKey Value Store(KVS)と呼ばれるモデルの簡単な説明を試みます。

なお apache Cassandraをモデルのサンプルとしています。

下の表がデータモデルサンプルです。

Key Value Storeのデータモデル

Column(カラム)は,データ構造の最小単位で、以下のような構造を持ちます。
・name:カラム名
・value:値
・timestamp:更新日時
また、カラムの集合をロウと呼びます。

カラムの上位にあるColumnFamily(カラムファミリー)はカラムの容器(ロウの集合)であり、
以下のような構造を持ちます。
・key:アクセスキー
・value:カラムの配列
リレーショナルデータベースのテーブルの相当すると考えて良いと思います。

ところで上記の表をみると構造がID000AとID000Bで異なっています。
また、カラムはインサート時に追加が可能です。
すなわちスキーマ(テーブル定義)を持たないわけです。

データを取り出すにはキーを指定します。
というかキーを指定しなければ取得できません。
なおキーを範囲指定して複数のロウを取得することは可能です。

以上簡単に説明してみました。
こういったデータベースで管理系業務アプリケーションを組むなどということは
考えれらないですが、ログ検索などには十分ですね。
やはりNoSQLは目的特化型データベースだと思います。

次回はまた違ったデータモデルのNoSQLについてアップしたいと思います。

タグ: ,

TrackBack