Cassandraのはじめ方─手を動かしてNoSQLを体感しよう
第1回 NoSQL,そしてCassandraとは
はじめまして,
NoSQLって何だろう?
最近KVS
NoSQLとは何でしょうか?
語感だけを聞くと
個々のNoSQLミドルウェアおよびRDBMSでそれぞれ進化しているので現実はもっと複雑ですが,
NoSQL | RDBMS | |
---|---|---|
何を重要視しているか | スケールアウトすること, | 一貫性 |
どのようにパフォーマンスを出すか | コモディティサーバを並べてスケールアウト | スケールアップまたはデータを水平分割 |
問い合わせ | シンプルなキーでの問い合わせ | SQLによる問い合わせ |
一貫性の維持 | 緩い | 強い |
データモデル | 列指向モデル, | 関係モデル |
NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが,
- 高速に動作する
- リレーションモデルではないデータモデル
- スケールアウト型アーキテクチャ
- コモディティサーバによって構築される
- スキーマフリー
- SPOF
(単一故障点) を持たない - 自動的に複数台へレプリケーションする
- イベンチュアルコンシステンシまたは一貫性の選択が可能
- SQLのような強力なクエリ言語を持たず,
シンプルな問い合わせしかできない
Cassandraとは何か
NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが,
Cassandraは,
Cassandraは,
Cassandraプロジェクトでは,
- すでに実績のあるDynamoと同様の手法で一貫性を保障する
- ワンホップでデータに到達するルーティング方式を採用している
- BigTableのデータモデルを元にデータモデルを構築できる
- 異なるデータセンター間でもレプリケーション可能
- ラックアウェア,
DC (データセンター) アウェアな書き込みが可能 - Dynamoよりも高速な書き込み方式を採用している
Cassandraの具体的な特徴として,
- ① 実用途向き
- ② 耐障害性の高さ
- ③ SPOF
(単一故障点) がないアーキテクチャ - ④ 一貫性制御の自由度
- ⑤ リッチなデータモデル
- ⑥ リニアにスループットを向上可能
- ⑦ 高い可用性
- ⑧ さまざまな言語をクライアントコードとしてサポート
- ⑨ JMX
(※2) によるサーバ内部の状態の把握のしやすさ/ 監視のしやすさ
この中で特に魅力的なのは③の
まず1点目,
Cassandraではデータが各ノードに複製・
このような側面をふまえて,
2点目のデータモデルですが,
3点目に挙げた多様な言語をサポートしているのは,
ThriftはIDL
- C++
- Java
- Python
- PHP
- Ruby
- Erlang
- Perl
- Haskell
- C#
- Objective-C
- Smalltalk
- OCaml
また,
- Java
- Python
- Ruby
- PHP
- Perl
- C++
- C#
- Scala
- Clojure
本連載の後半の回のどこかで,
- ※1)
- URL:http://
www. を参照cs. cornell. edu/ projects/ ladis2009/ papers/ lakshman-ladis2009. pdf - ※2)
- JME:Java Management Extension。アプリケーションやJVMの状態を監視・
管理するためのJava標準API。 - ※3)
- 詳細はCassandra Wikiの
「ClientOptions」 に詳しく書いてあります。
URL:http://wiki. apache. org/ cassandra/ ClientOptions/
まとめ
今回はNoSQLにおける現在の概観をざっくりとご説明した上で,
バックナンバー
Cassandraのはじめ方─手を動かしてNoSQLを体感しよう
関連記事
- 第38回 LOCONDO.jpやLINEでのMySQL最新導入事例,PostgreSQL 11ベータ4リリース,Cassandra(イベント情報のみ)
- 11月29日,Cassandraカンファレンス「Cassandra Conference in Tokyo 2012 (CCT2012)」が東京・三田にて今年も開催(参加無料)
- 「Cassandra Conference in Tokyo」10月5日に開催,Cassandra開発コアメンバーJonathan Ellis氏が来日
- Cassandra,MongoDB,Redisなど主要NoSQL比較
- 第5回 大規模データを扱うためのHBaseとCassandra