Posted at

7つのデータベース7つの世界

今更ながら読んでみた。以下は備忘録。

データベース名 
感想など

PostgreSQL               
馴染みのあるRDBMS。余談だけど、そもそもこの本を読もうと思ったのはけちょんけちょんにしているのを見たからだったりする。

Riak
Basho(Riakの開発会社)という文に注釈がないところに時代を感じる。curl使ってDBを操作するのが新鮮。操作方法の説明だけでなくてアーキテクチャについての図解が多めなのは、mapreduceやCAP定理について触れる題材としてベストだからなのか。本の中では一切触れられてないけど、ストレージ部分にはLevelDBを使うこともできるらしい

HBase
Hadoopエコシステムの一つ。データにバージョニングの概念を持ち込んでDBMSで管理するのが特徴。最新のHBaseでサンプルコードを試そうとしたら全然動かなくて苦労した。Wikipediaが公開している記事データのXMLをHBaseに取り込むサンプルは興味深かった。

MongoDB
RethinkDBはなぜ失敗したのか、ってブログ記事を読んで以来ずっと触ってみたかった。データをネストできるのとクエリが柔軟で強力なのが特徴。バックグラウンドのオプティマイザとかどうなってるんだろ、データ増えたらパフォーマンス出るのかな、って疑問が自然に湧く

CouchDB
Couch(寝床)のWebインターフェースがFutonといったようなネーミングセンス。MongoDB同様ドキュメントDBであり、Riak同様RESTベースで操作する。mapreduceベースのビューを介してデータにアクセスするのが特徴だと思うが、あまり心惹かれなかったので手を動かさなかった。

Neo4j
グラフDB。本書を読み進めるのもここらへんで息切れしてきたし、直近のwebadminだとGremlinが同梱はされていないようだ(本書上ではwebadminから直接操作できるようになっている)。これもcurlでDBを操作するあたり、Riakが2つ目にもってきてるのは構成上正解のように思う。そして度々現れるZooKeeper。クラスタ管理を知るためにはZooKeeperが必要なんだなぁ

Redis
REmote DIctionary Serviceの略。知らなかった。データストアとしてだけでなく、ブロッキングキューやPub/Subの仕組みも持つ。そして高速(らしい)。8.4章でRedis、CouchDB、Neo4jをいっぺんに扱うのは例題としても良さそう。

あくまで2010年以降頭角を表したNoSQLプロダクトの紹介が主題で、最終章でDBMSの選択についても触れられている。最終章の内容を自分の言葉で言えるようになれば、免許皆伝なんだろうけどなかなかその領域に達するのは難しそう。