Cassandra | |
Eben Hewitt 大谷 晋平 オライリージャパン 2011-12-24 売り上げランキング : 7820 Amazonで詳しく見る by G-Tools |
訳者の一人である小林さんから献本を頂いたので早速ざっと目を通してみました。
私自身、Cassandraは0.6辺りからずっと触っているのである程度は理解してはいるつもり。その上で読んだ感想です。
まず最初にRDBMSの説明と弱点。つまりCassandraを含むNoSQLが必要とされた背景の説明。次いでCassandraの説明がはいる。そこでブリューワのCAP定理の説明もはいる。CAP定理に関しては分かり易く説明されてると思う。
続いてCassandraの利用事例。NoSQLはDomain Specific Databaseなので用途や使い所を誤るともう目も当てられない。だからCassandraがどういう用途の為に作られ何に向いているのかはしっかり理解しておこうね。
続いてCassandraのインストールの話。まぁこれはまんますね。これに続いてCassandraのデータモデルの話。RDBMS一筋な仕事場から来た人が恐らく最初に躓く所だと思う。中々構造体を理解出来ない。まぁRDBMSのデータモデルが二次元で収まるのに対して、Cassandraのは3次元な構造だからね。イメージしづらいんだと思う。
ただCassandraのデータモデルはもう一方のNoSQLの雄、HBaseと酷似してるから覚えておいて損はないと思う。
Cassandraのアーキテクチャの話は結構重要だと思う。Cassandraを構成する各種技術やらアルゴリズムって最近流行の分散処理の基本的なモノが多いから、これらを理解しておく事はそういった方面の理解を深める事にもなると思う。仮にCassandra使わないけど分散処理するアプリを作るなら相当参考になると思う。
設定とデータの読み書きに関してかなり詳しく書いてあるのはヨサゲ。この辺り理解しておけばトラブった時にも対応が簡単になるしね。設定に関しては前章のアーキテクチャの話も結構絡んでくるね・・・。
あとここでCassandra最大の問題、レンジゴーストに言及してる。ただこれに関してはもうちっと説明欲しかったな。後対策。
監視やらメンテナンス、後パフォーマンスチューニング等運用に関する情報が多いのもいいね。実際RDBMSの運用と違ってDBが生きたまま、動いたままの状態でメンテやらなにやらやる事が多いから、監視と運用ノウハウは必須。パフォーマンスチューニングはCassandraが動き始めた後と、設計段階でのデータ設計でのチューニングがあるけどここでは基本前者のみかな。まぁデータスキーマの話の所でしっかり理解しておけば事前のチューンは充分出来ると思うけど。
Hadoop連携はまぁHadoop使える位だったら分かるしょ。CassandraよりHadoopの方が遙かに複雑だし・・・。
後は0.8~1.0で搭載された新機能の話。ここで一番大きいのはSQL見たいなQuery言語が使えるCQLかな。CQL使えばSQL脳な人でもかなり使いやすくなると思う。分散カウンタに着いての話もあるけどこっちの機能は・・・。
最後にNoSQL全般の俯瞰。最初の方でも言ったけどNoSQLはDomain Specific Databaseなのでそれぞれの用途と特性をしっかり理解して使わないと危険。そういう意味でここで他のNoSQLがどんなモンかをしっかり理解しておいた方がいいと思う。
まとめ
ネット上に散らばってるCassandraの情報は大体ここに収まってる感じ。だからこれからCassandraを使おうって人はこれ一冊あれば事足りるんじゃないかな。後Cassandraは使わんけど、分散システムには興味或るって人とか、或いは普通にシッステム開発してる人が読んでも結構勉強になると思うよ。
クラウドで実用に耐えるアプリはほぼ分散アーキテクチャなので、従来の構造のアプリしか作った事がない人はこれを読んで分散可能にするにはどうしたらいいかを学ぶといいと思う。