Cassandraは4次元または5次元ハッシュなデータモデルを持っています。
基本コンセプトとしては:
- Cluster: 論理的なCassandraインスタンスの事。クラスタは複数のキースペースを持つことが出来る。
Keyspace: ColumnFamilies用のネームスペース。一般的には1アプリケーションに1キースペース。
ColumnFamilyは複数のカラム(カラムは名前、値、タイムスタンプを持つ)を持ち、行キーで参照可能。
SuperColumnsは サブカラムを持つカラムのこと。
まずはボトムアップで一番小さい粒度のデータ構造であるカラムから順にみていきましょう。
カラムはCassandraにおける最小限のデータ構造です。その実体はタプル(triplet)で、名前、値、タイムスタンプを持ちます。
Thriftインタフェースのカラムの定義は以下のようになります。
struct Column { 1: binary name, 2: binary value, 3: i64 timestamp, }
JSONぽい書き方をしたカラムは以下のようになります。
!doctype>