LoginSignup
4
6

More than 5 years have passed since last update.

Aerospikeのデータモデル・型について

Last updated at Posted at 2016-06-17

こんにちは、株式会社D2C 技術開発部の二瓶(にへい)です。

前回(http://qiita.com/d-tech/items/53e57c8cc425530d6e28 )に続いて、今回はAerospikeのデータモデルなどのお話しです。
KVS(Key-Value Store)なのでRDBより覚えることは少ないです。

Aerospikeシステム構成について


データモデル(Data Model)

簡単に言うとデータ管理方式の概念です。
RDBではお馴染みのテーブル、レコードみたいなところですね。

Namespaces

データを入れる一番大きい管理単位です。
RDBでいうところの狭義の「データベース」に近いものと思ってください。
"データベース名"とかで使う時のアレです。

こんな感じの図の赤い部分のイメージです。
aero_2-001.png

Sets

Namespacesの中に作成します。データを保持する""ですね。
RDBでいうところの「テーブル」です。

こんな感じの図の赤い部分のイメージです。
aero_2-002.png

Records

Setsの中に作成します。データを保持する""ですね。
RDBでいうところでも「レコード」ですね。

こんな感じの図の赤い部分のイメージです。
aero_2-003.png

key

この辺からRDBの概念から外れてきます。
プログラムのハッシュテーブルのキー(KEY)に近いものです。
RDBで無理やり例えると、プライマリキーが指定されたカラムですかね。違う部分もありますが。
aero_2-004.png

Bins

プログラムのハッシュテーブルの値(VALUE)に近いものです。
ここでも無理やりRDBで例えると、値が入ってるカラムですかね。これも違う部分ありますが。

こんな感じの図の赤い部分のイメージです。
aero_2-005.png

Metadata

Recordsの属性情報ですね。以下を保持してます。
・generation・・・(更新の)世代
・TTL(time-to-live)・・・生存時間(削除までの秒数)

データモデルまとめ

aero_2-006.png

4.データ型について


新しいKVSだけあってRDB並みのデータ型が用意されています。
バイナリデータやコレクション型もあるので、プログラム側でゴニョゴニョやる作業が減らせます。
「NativeFormats」を使えば自作クラスをリスト変換とかもしなくていいみたいです。
aero_2-007.png

今回はここまでになります。
では、また次回。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6