NoSQL本読み比べ

最近NoSQL本4冊を読む機会があったので、各本の紹介をしてみます。

前知識

NoSQLとは、リレーショナルデータベース(RDB)以外のすべてをさします。そのため、NoSQLに含まれるデータベースには様々な種類があり、RDBではないとう事を除いて、すべてのデータベースにおいて特に共通する特徴があるわけではありません。また、分類方法にも複数の視点があり、それぞれのデータベースが複数の特徴を持っていたりします。

  • データモデルでの分類
    • キー・バリュー型
    • カラム指向型(列指向型)
    • ドキュメント指向型
    • グラフ指向
  • サーバの分散方法
    • マスタ・スレーブ型
    • P2P型
  • 目的の違い
    • 高速でデータの書き込み・読み出しをしたい
    • RDBの用にあらかじめ静的に決められた列定義より柔軟な 構造が欲しい構造が欲しい
    • ビッグーデータを扱いたい
  • CAP定理
    • Consistency(整合性)、Availability(可用性)、Paritions(分断耐性)の3特性のうち、どの2つにポジションを取っているか。
    • 3特性のうち、同時に実現できるのは2つまでというのが、NoSQL界の常識らしいです。

NOSQLの基礎知識

全255ページ/発行日:2012/05/18/監修:太田洋

丁寧かつ簡素に書かれており、数時間でNoSQLが俯瞰できるようになります。NoSQLデータベースを知る最初の1冊として最適です。


構成
序章 ビッグデータの時代
第1章 NOSQLとは何か
第2章 NOSQLのデータモデル
第3章 アーキテクチャの基本概念と技術
第4章 HadoopはNOSQL?
第5章 主なデータベース製品
 5.1 データモデルとアーキテクチャによる分類
 5.2 マスタ型のキー・バリューストア
      ・Hibari
 5.3 P2P型のキー・バリューストア
      ・Amazon Dynamo
      ・Voldemort
      ・Riak
 5.4 オンメモリのイネーブラ型KVS
      ・Memcached
      ・Redis
      ・Scalaris
 5.5 オンディスクのイネーブラ型KVS
      ・Tokyo Cabinet/Tyrant
 5.6 カラム指向のマスタ型データストア
      ・Apache HBase(Bigtable)
      ・Hypertable
  5.7 カラム指向のP2P型データストア
      ・Cassandra
 5.8 グラフ型のデータストア
      ・Neo4j
      ・InfiniteGraph
 5.9 ドキュメント指向型のデータストア
      ・CouchDB
      ・MongoDB
 まとめ
第6章 NOSQLの選択基準
第7章 NOSQLを使うビジネス
特徴

前半では、NoSQLの分類方法、各データモデルとアーキテクチャについて、後半では、代表的なプロダクト毎の特徴や選定方法が説明されています。
また、Hadoopについて1章さかれていますが、分散処理のフレームワークと位置づけ、本書ではNoSQLに含められていません。
4冊の中でNoSQL全体を俯瞰するのに最適ですが、各データベースのインストール方法や、CRUDの仕方については全く触れられていないため、
個々のプロダクトを使う具体的な方法は別の情報源に頼る必要があります。
ちなみに、タイトルでOが大文字なのは、「Not Only SQL」のOnlyを強調する意味だそうです。






NoSQLデータベースファーストガイド

全231ページ/発行日:2011/05/01/著者:佐々木達也

キーバリュー型を知るのに最適です。本書ではキーバリュー型とドキュメント指向型に特化しています。カラム指向は大量のデータを更新・参照するのに有用としつつも本書の目的から外れるとして、対象外とされており、グラフ指向型については特に触れらていません。またカラム指向と同じく、ビッグデータを対象とするHadoopについても触れらていません。


構成
Capter1 NoSQLデータベースの基礎知識
Capter2 NoSQLデータベースの種類と特徴
 2-1 memcached(揮発性key-valueストア)
 2-2 Tokyo Tyrant(永続性key-valueストア)
 2-3 Redis(揮発性/永続性key-valueストア)
 2-4 MongoDB(ドキュメント指向データベース)
Capter3 NoSQLデータベースを使ってみる
 3-1 memcachedの具体的な利用例
 3-2 Tokyo Tyrantの具体的な利用例
 3-3 Redisの具体的な利用例
 3-4 MongoDBの具体的な利用例
Capter4 パフォーマンス検証
Capter5 NoSQLなリレーショナルデータベース
特徴

構成からわかるとおり、本書はキーバリュー型について力をいれた構成になっています。
取り上げられている3つのキーバリュー型は他のDBと組み合わせて利用される特徴を持っており、4書籍の中で一番詳しく説明されています。
具体的なシチュエーションを例にサンプルコード付きで解説されており、実際にプロダクトを導入したイメージがしやすい内容です。
また、ドキュメント指向型のMongoDBについても、同レベルの説明がされています。






NoSQLプログラミング実践活用技法

全407ページ/発行日:2012/05/17/著者:Shashank Tiwari/監修:中村泰久/翻訳:長尾高弘

NoSQLの概要から、実際のインストールや使い方まで一番守備範囲が広い内容です。プロダクトは、揮発性キーバリューであるmemochedから分散処理のMapReduceHadoop、さらにAmazonのSimpleDBやGoogle App Engineにまで及び、説明内容もNoSQLの概要からインストール、パフォーマンスチューニングにまで幅広く取り上げられています。


構成
第1部 さあはじめよう
 第1章 NoSQLとは何か、なぜ必要なのか
 第2章 Hello NoSQL:最初の一歩
 第3章 NoSQLのインタフェース、インタラクション
第2部 NoSQLの基礎を学ぶ
 第4章 ストレージアーキテクチャの基礎
 第5章 CRUD操作の実行
 第6章 NoSQLデータベースのクエリー
 第7章 データストアの設計変更と拡張の管理
 第8章 データセットのインデクシングとソート
 第9章 トランザクションとデータ完全性の管理
第3部 NoSQLに熟達する
 第10章 クラウドのNoSQL(GAEとAmazon SimpleDB)
 第11章 MapReduceによるスケーラブルな並列処理
 第12章 Hiveによるビッグデータの分析
 第13章 データベースの内部構造
第4部 NoSQLを極める
 第14章 どのNoSQL製品を選ぶべきか
 第15章 データベースの併用
 第16章 パフォーマンスチューニング
 第17章 ツールとユーティリティ
 付録 NoSQL製品のインストールとセットアップ
  A.1 Hadoopのインストールとセットアップ
  A.2 HBaseのインストールとセットアップ
  A.3 Hiveのインストールとセットアップ
  A.4 Hypertabelのインストールとセットアップ
  A.5 MongoDBのインストールとセットアップ
  A.6 CouchDBのインストールとセットアップ
  A.7 Redisのインストールとセットアップ
  A.8 Cassandraのインストールとセットアップ
  A.9 Nagiosのインストールとセットアップ
  A.10 RRDtoolのインストールとセットアップ
特徴

本書は話題が多岐にわたっており、10章のクラウド系のプロダクトや17章のツール群は他書で得られない情報です。
情報量が多いですが、NoSQLの個別のプロダクトの説明と思想的な説明が交互にされていることともあいまって、読み進めるのに時間がかかるのが難点です。
入門書としてより、ある程度見地を得てからの2冊目として読むのが良いと思います。






ビッグデータを征すクラウドの技術 Hadoop & NoSQL

全141ページ/発行日:2011/04/25/ASCII.technologies編集部 編/執筆:多数

月刊ASCII.technologiesの特集と連載から加筆をして構成された内容です。Hadoopについて多数の執筆者による紹介が、カラーの図解付きで読めます。


構成
 ・MapReduce/Hadoop自由自在
 ・NoSQLのココロと実装比較
 ・Cassandraから覗くNoSQLの世界
特徴

Hadoopについて記事を割いている反面、雑誌の連載の再構成であることや、執筆者が多数いることから、NoSQLについてまとまった知識を得る用途には向いていません。
NoSQLデータベースの中で唯一ページを多くさかれているCassandraについてもバージョンが0.7と古い内容です。





以上、NoSQL本の紹介でした。新たなNoSQLライフを始めるための一助にしていただければ幸いです。