投稿元:
レビューを見る
★★★★☆
NoSQLの基礎がわかる良書
【内容】
本書はビッグデータの中心的な技術基盤であるNOSQLを
平易かつ包括的・体系的に整理しています。
【感想】
すっきりしました。
NoSQLってバズワードすぎてなんとなくレベルだったのですが、しっかり理解出来ました。
100種類以上あるNoSQLもそのうち集約されていくんだろうな。
特にどの製品を選ぶべきかという観点は参考になった。
NoSQLに興味のある人が最初に読むべき本であろう。
個人的には、CassandraとMongoDBが気になるし良さそう。
【引用】
NoSQL
"SQLだけでなくて、新しいDB技術も利用する必要がある"というムーブメント
Not only SQLの略
"RDBでうまく動いているならそれをNoSQLにする必要はない"
→NoSQLは銀の弾丸ではない。利用目的を絞り込んだDBである。
BIG DATAへの対応
Volume(膨大な量)
Velocity(速く処理する)
Variety(構造が複雑化)
→処理するにはRDBでは限界がある。
NoSQL
DBクラスタを水平拡張
汎用的なハードで使える
複雑で多種多様に変化するデータ構造に対応
高可用性と高信頼性
NoSQLの欠点
機能が弱い(joinすらない)
データの整合性が弱い(結果整合性:最終的に一致すればOK)
Hadoop
並列分散処理を行うためのフレームワーク
Hadoop Distributed File System(HDFS)
分散ファイルシステム
MapReduce
並列分散バッチ処理プログラム
MapタスクとReduceタスクに別れる
Map・・・元データを分解・抽出・変換→出力
Reduce・ Mapデータを集約→出力
NoSQLのデータモデル
100種類以上ある。
主に以下の4つに分類される
キー・バリュー型
カラム指向型
ドキュメント指向型
グラフ型
複数ノードで動く分散システムである。
マスタ型
P2P型
キー・バリュー型(KVS)
キーとバリュー(値)が1対1の関係。
2列のテーブルのイメージ
製品:Dynamo,Voldemort,Riak,Redisなど
カラム指向
行キーが、複数の列を持つことができる。
列は動的に追加できる。
行を増やすだけでなく列も増やせるDB
製品:Bigtable,Cassandra,HBaseなど
ドキュメント指向型
JSONなどドキュメントの形で管理する。
ビッグデータ対応というより、使いやすさに重点。
分散とか速度では、KVSやカラム指向にはかなわない
製品:CouchDB,MongoDBなど
グラフ型
データとデータの繋がりを管理できる。
製品:InfiniteGraph,Neo4jなど
CAP定理
分散システムは最大2つしか満たせない
C:整合性・・・データが常に同じか
A:可用性・・・どのクライアントも読み書きできる(Lockしない)
P:分断耐性・・ネットワーク切れても平気か
NoSQLはまずPが大切(分散型なので)
CA
整合性と可用性
REBMS(Oracle/SQLServer)
AP
可用性と分断耐性
Dynamo,Cassandra,Vodemort,CouchDB,Riak
CP
整合性と分断耐性
Bigtable,MongoDB,HBase,Redis
NoSQL選定基準
利用目的を明確にすること
→それにあったNoSQLを選定する
整合性重視
◎HBase
○Cassandra,Riak,Voldemort
×MongoDB,CouchDB,Neo4j
拡張性重視(スケールアウト)
◎HBase,Cassandra,Riak
○MongoDB,Voldemort,InfiniteGraph
×CouchDB,Neo4j,Redis
柔軟性重視
データモデルを簡単に設計できる
◎MongoDB,CouchDB,Neo4j,InfiniteGraph
○Riak,Cassandra,HBase
機能性重視
・Neo4j,InfiniteGraph・・ソーシャルグラフ
・CouchDB,MongoDB,Riak・ MapReduceで分散高速大量データ集計
・Cassandra,HBase・・・・Hadoopで分散高速大量データ集計
・Neo4j,Redis,Riak・・・ 全文検索
・Neo4j,Redis・・・・・・トランザクション
・Cassandra,MongoDB・・・索引を付けられる
永続性重視
◎Cassandra,HBase,InfiniteGraph,Neo4j,Voldemort,Riak
○MongoDB,CouchDB,Redis
商用サポート
◎HBase,Cassandra
○MongoDB,CouchDB,Riak,Neo4j,InfiniteGraph
コミュニティ
◎Cassandra,CouchDB,HBase,MongoDB,Riak,Neo4j
総合評価
◎Cassandra
◎HBase
◎MongoDB
パッケージ製品
Cloudian(Cassandra,Redis)
HBase
カラム指向・マスタ型
Hadoop環境で稼働する
MapReduceも可能
強い整合性
難易度が高いらしい
Facebookのリアルタイム分析で使用
Cassandra
カラム指向・P2P型
Hadoopでも動作可能
結果整合性のレベル調整が可能
ギリシャ神話の悲劇の預言者Cassandra王妃が由来
MongoDB
ドキュメント指向型・マスタ型
レプリカセットも使える(マスタ死んでも平気)
MapReduce適用可能
インデックス機能あり
N.Y.Timesで使用
英語で「ばかでかい」を意味する "humongous" に由来