NoSQL Cassandra しらべと検証

NoSQLとは

一般に Not only SQL と解釈されています。

No とあるが否定では無く SQL だけでは無いといった解釈が一般的で実際はリレーショナル機能が無いDBといったところです。(諸説いろいろあるみたですが)

つまりRDB以外のデータベースといった認識です。

NoSQLを選ぶ理由

RDBではネックとなっていた部分を解決

RDBの問題点

  • 大量データの同時処理(特に追加、更新系)
  • マスターのスケールアウト(できなくはないがリスク高)
  • 柔軟性(設計を後で変えるのは大変)

RDMSでもやろうと思えば出来ないことはありませんが、
設計が複雑になり不便で使いにくい構造となってしまい
運用が大変かつ障害リスクも高くなってしまう傾向にあります。

NoSQLの特徴

強み

  • スケーラビリティ(分散しやすい)
  • スキーマレス(カラムを自由に定義できる)
  • 耐障害性(無停止で、復旧、スケールアウト)
  • 大量データ登録、参照

弱み

  • 整合性(トランザクション制御、データ一貫性)
  • 更新、削除
  • 結合(テーブルの結合)

NoSQLの種類

CAP定理について

ノード間のデータ複製は同時に次の3つの保証をすることができないことを表しています。

  • Consistency:一貫性
  • Availability:可用性
  • Partition Tolerance:分断体制

CAPから2つを選ぶのでは無く度合いの問題

  • 一貫性+可用性
  • 可用性+分断耐性
  • 一貫性+分断耐性

データモデルの種類

  • キー・バリュー型
  • カラム志向型
  • グラフ型
  • ドキュメント型

アーキテクチャの種類

  • マスタ型
  • P2P型
  • イネーブラ型

Cassandraについて

今回は、列に着目した処理を高頻度で行う為、カラム志向型のCassandraをピックアップといった感じで選択しました。

Cassandraの種類は

  • 可用性+分断耐性
  • データモデル:カラム志向型
  • アーキテクチャ:P2P型

となります。

略歴

  • 開発元はFacebook
  • 2008年にオープンソース化
  • 2009年Apacheソフトウェア財団に寄贈
  • 2010年トップレベルプロジェクトに引き上げ

バージョン

  • 0系・・・無し
  • 1.0、1.1系・・・無し
  • 1.2系・・・1.2.19(2014年9月18日にリリース)
  • 2.0系・・・2.0.11(2014年9月24日にリリース)
  • 2.1系・・・2.1.1(2014年10月24日にリリース)

Cassandraの特徴

  • 単一障害点が無い
  • ノード追加で無停止スケールアウト
  • 列志向型モデル(多次元化が可能)
  • 整合性レベルの調整が可能DataStaxOpsCenter(クラスタの状態が直感的にわかる)

使用目的

  • データストアとして
  • RDBの代わりとしてでは無く共存
  • 機能の要件からRDBでは難しい場合に選択

まとめ

  • 単純に使う分には簡単な操作で可能
  • バージョンで機能が全然違うので要確認
  • アドミニストレーターは構造やバージョンの違い運用での注意点など把握しておく必要がある
  • チューニング大事
  • 機能の要件が適しているか確認
  • RDBの代わりとしてでは無く共存
  • 機能の要件からRDBでは難しい場合に選択

参考資料

cassandra公式:http://cassandra.apache.org/

datastax:Apache Cassandraの機能およびアーキテクチャの概要

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA