[技術書つまみ食い] 『NoSQL データベース ファーストガイド』第一回

この本は一体?

2011 年 5 月 1 日の発売日に買って、ペラペラっと見て本棚の肥やしになってた。
200ページ弱で、字も大きいので、本気で取り組めば半日くらいで読み終わりそう。しかし、そこまでガッツリ取り組むほどの内容ではない。
なんで今更読もうと思ったかというと、先日「全文検索エンジンgroongaを囲む夕べ 3」というイベントの Ust を見て、「RDB じゃないデータストアって、かなりカジュアルに活用されるようになったなー。ナウいなー」とか思ったからでした。

Chapter 1

NoSQL と言っても、「No! SQL!」とか、そう言うんじゃなくて「Not only SQL」ですんで。
RDB(リレーショナルデータベース)の理論は 1969 年に提唱されたが、ハードウェア性能が足りて無くて実現出来なかった。
しばらくの間は階層型データベース(ディレクトリ構造みたいなあれ)、ネットワーク型データベース(重複を潰した階層型?)が主流でした。
その後、近年のハードウェアの進化で RDB が実用的なパフォーマンスで登場したようです。

RDB の強み

  • データの一貫性
  • 正規化
  • SQL
  • 実績やノウハウ

RDB の弱み

  • 大量データの書き込み
  • インデックス付きのテーブルへの更新
  • スキーマ変更
  • 即応性

じゃ、NoSQL はどうなん

とりあえず key, value みたいな単純な構造のデータを超大量に書き込むのが得意だね。
あと、単純だからこそ、ぶつ切りにして複数のサーバーに分散させて読み書きする事が出来たりする。
ぶつ切りに出来るってことは、サーバーを増やすだけで簡単にスケールアウトできるって事。これは有利ですね。
まぁ、キャッシュとかログとかに使うのが良いんじゃないかな。

NoSQL ってどんなのがあんの?

揮発性key-valueストア:memcached, (Redis)
要するにメモリー上に key, value のセットを置いて、高速にアクセスするよって事。
DB が落ちたらデータも消える。

永続性key-valueストア:Tokyo Tyrand, Flare, ROMA, (Redis)
ディスク上に key, value のセットを置いて、高速にアクセスするよって事。
DB が落ちても、再起動したらデータは残ってるよ。

ドキュメント指向データベース:MongoDB, CouchDB
スキーマレスが特徴。JSON とかみたいに、データ構造ごと保存して使う感じかね。

列指向データベース:Cassandra, HBase, HyperTable
特定のカラムだけを大量に取得したり、一括更新したりするのが得意なデータベース。
単一カラムだけ見れば key-value げなので、key-value と同じく、大量データの読み書きが得意っぽい。

ってな具合に分類出来るよ。

NoSQL はどういうときに使える?

基本的には RDB が何でも出来ちゃうから、出番は無い。
でも、とにかく速度、とか、とにかくスケーラビリティっていうようなケースが出てきたら、RDB を補完するために呼んであげてね。

とりあえずまとめ

RDB がデータのストックに向いているとすれば、NoSQL はフローの扱いに向いている感じなんでしょうね。
Chapter 2 からは実際に memcached やら Tokyo Tyrant、Redis, MongoDB, MySQL+HandlerSocket の実演です。
MySQL+HandlerSocket とかはちょっと面白そうな感じがする。
まぁ、次回がいつになるかは知りませんけれども。

カテゴリー: 技術書つまみ食い パーマリンク

[技術書つまみ食い] 『NoSQL データベース ファーストガイド』第一回 への1件のコメント

  1. ピンバック: [技術書つまみ食い] 『MongoDB イン・アクション』第一回 | UPEC Blog

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください