couchDBを使ってみた

Erlangで書かれた分散指向?なDBであるcouchDB(http://incubator.apache.org/couchdb/)を使ってみた.


couchDBについて簡単に説明しておくと,MySQLなどに代表されるリレーショナルなデータベースではなく,スキーマフリーで,ドキュメント指向でありかつ,耐障害性に優れた分散型のデータベースだそうだ.これだけでは,何の残ことやらさっぱり分からないと思うが,要するに,レコードという概念を無くして,JSONのオブジェクトをそのまま保存し,取り出しはmap/reeduceで行おうということである.こうすることで,自由にドキュメントの型を変更することが出来るし,SQLのようにフィールドに縛られない挿入や検索も可能となる.


と,ここまで聞いてみると,素晴らしいDBのように思えるが,まだまだ発展途上である.ちょっと使ってみた感じ,インクリメンタルなmap/reduceがまだ実装されていないので,view(SQLでいうselectのようなもの)の構築に非常に制限がある.その上,大量な,と言っても数万件のドキュメント(SQLでいうレコードのようなもの)を挿入してみたところ,map/reduceの処理がタイムアウトしてしまい,結果が得られなくなってしまう.また,lockのような物がないので,トランザクション処理も難しい.


と,いいところ無しなのだが,インクリメンタルなmap/reduceは時期リリースで搭載されるらしいし,大量のドキュメント処理もたぶん,今後改善されていくのだろう.また,時期リリースでは,全文検索も実装されるらしいので,これができたら結構面白いことになるのではないだろうか.今後に期待である.


しかしながら,現在リリースされているバージョン(0.8.1)のご利用は計画的にする必要がありそうだ.