NoSQLデータベースファーストガイドを読んだ
- 作者: 佐々木達也
- 出版社/メーカー: 秀和システム
- 発売日: 2015/04/14
- メディア: Kindle版
- この商品を含むブログを見る
春先にRDBMSの勉強を少ししたのでNoSQLの話も少し覗きました。2011年発行とやや古いのですが、その分一歩ずつ各種ソフトウェアの背景を把握しながら前に進んでいけるような内容でよかったです。
- 紹介されていたのはmemcached, Tokyo Tryant, Redis, MongoDB, MySQL + HandlerSocket
- memcachedなどのkey-valueストアはテーブルに相当するものがないということを認識して雷を打たれた感じになりました
- 各NoSQLデータベースについて
- 各ソフトウェアの見出しは適当につけましたが、使うときは4章および現在の各種ソフトウェアのドキュメント参照のこと
- memcachedは揮発するけど速い
- 揮発していい、計算に数分かかるけど一度参照されたらしばしば参照されるようなデータに使いやすい
- RDBMSなどと組み合わせて使うことが前提
- Tokyo Triantは書き込む分、memcacedより遅いがRDBより速い
- ブログのアクセス数みたいに希薄しては困るけどしばしば更新 & アクセスされる、みたいな値に使うのが良さそう
- 検索条件の都合で、範囲を指定してのデータ取得に弱いので、MySQLなど範囲指定が柔軟な他のDBでサマリテーブル作って組み合わせると良さそう
- ブログのアクセス数みたいに希薄しては困るけどしばしば更新 & アクセスされる、みたいな値に使うのが良さそう
- rediesはこれらのいいとこ取りしたような感じ
- 配列の取り扱いが強いのと、集合演算があるので、フォローしてる人のつぶやき一覧みたいにしばしば更新&参照される割に絞り込みがややこしそうなところで使えそうな感じがありました
- この例みて少し強くなった気持ちになれたので自分でも似たような例を考えて一回試し書きしてみたい
- 探され方の分だけデータを挿入するためのキーを用意する、みたいな印象
- mongo dbはドキュメントの構造の柔軟さがまず魅力
- MySQL + HandlerSocket
- 速いな! という気持ちですが、あれから時間も経っていて、いくらかのNoSQLはけっこう枯れてきたと思われるので、NoSQLの仕事はNoSQLに任せた方がいいかなという感触
とりあえず、RDBMSの本を読んで、集合演算やしばしば更新されるテーブルに対してどうしようかなーという感じがあり、具体的には
- ブログのアクセス数
- 頻繁にアクセス&更新される一覧の表示
に関して悩んだことがあったので、知りたいことはここにあったのかーという感じでした。自分不勉強ですねぇ。。
また、レプリケーションの話が各ソフトウェアごとに書いてあって、データが分散しているとはどういうことかー、みたいなのが少しだけ感覚つかめた気がして*3よかった。例を浴びるの is よいです。これは不意打ちによかったです。
こういうの、インフラ寄りの人からすると当たり前かもしれないんですが、rediesを導入する機能を書き始めるWebアプリケーションエンジニアからすると触るの自体大変だったりして具体的なログの感じとか、データが保存されているイメージとかつかめなくてやたら難航することがあるような記憶があるので、お手本のログがあるの、正常な状態はこれだよ、と教えてもらえる感じでとてもよかったです。
現場からは以上です。