APIとDesign Documentでカクテルブックに挑戦:ゆったリラックス! CouchDBがあるところ(2)(5/5 ページ)
オープンソースでモダンなドキュメント指向データベース、CouchDB。今回は実践的な「カクテルレシピブック」を作りながら、CouchDBの特長を解説します。サンプルプログラムをダウンロードし、実際に体験してみてください。(編集部)
そのほかの管理向けAPI
最後に、CouchDBに用意されているメンテナンス向けのAPIについて紹介します。いずれの機能もHTTPメソッドを介して簡単に扱えます。curlコマンドを使用してバッチ処理として実行するのもよいでしょう。
Replicationの実行
CouchDBのReplication機能を使用すれば、利用者の任意のタイミングでデータベースの複製を作成できます。データベースの可用性向上や、あるドキュメントをベースにした派生ドキュメントの作成に役立ちます。
Replicationの対象にはDesign Documentも含まれます。Replicationも例外なく、HTTPメソッドを介して実行します。以下の例をご覧ください。“_replicate”APIを使用しています。
$curl -X PUT 'http://127.0.0.1:5984/cocktail-rep' $curl -X POST 'http://127.0.0.1:5984/_replicate' -d '{"source":"cocktail-book","target":"cocktail-rep"}'
Replication先となるデータベースがない場合は事前に作成しておきます。“source”にはReplication元を指定し、“target”にはReplication先を指定します。別のCouchDBサーバをReplication先にする場合はURIをすべて記述します。Replication元のデータベースはローカルである必要はありません。“source”に外部のデータベースを指定し、“target”に自身のデータベースを指定するやり方もあります。前者は“push”、後者は“pull”という言葉に置き換えると分かりやすいかもしれません。
(レプリケーション元がローカルの場合) $curl -X POST 'http://127.0.0.1:5984/_replicate' \ -d '{"source":"cocktail-book","target":"http://xx.yy.zz.aa:5984/cocktail-re
(レプリケーション元が外部の場合) $curl -X POST 'http://127.0.0.1:5984/_replicate' \ -d '{"source":"http://xx.yy.zz.aa:5984/cocktail-book","target":"cocktail-re
CouchDBのレプリケーションはFutonからも簡単に実行できます。その場合はFutonの最初の画面にある右側のメニューから"Replicator"を選択しましょう。
古いrevisionの削除
CouchDBには“Compaction”という機能があります。これはドキュメントの古いrevisionを削除し、データベースの領域を解放する機能です。Compactionはデータベース単位で実行されます。これも例によってHTTPメソッドで簡単に実行できますし、Futonからも実行できます。HTTPメソッドで直接実行する場合は、以下のようにデータベース名の隣に“_compact”API記述して実行します。Futonの場合は最初の画面からデータベースを選択し、“Compaction”というボタンを押して実行してください。
$curl -X POST 'http://127.0.0.1:5984/cocktail-book/_compact'
CouchDBのAPIとDesign Documentについての基本的な部分は以上になります。HTTPによるシンプルなAPIと、多彩な表現が可能となるDesign Documentは、ほかのDBMSと比較すると実にユニークな仕様だと思います。
HTTPのAPIでほかのAPサーバやWebサーバからCouchDBへアクセスすれば、アプリケーションとデータとを疎結合な関係にしたシステムを設計できます。あるデータに対してアプリケーションを複数持たせることも容易です。逆に、Design Document(view、show、list)と添付ファイルの機能をフルに活用すれば、CouchDB単体でシステム全体を構築することも不可能ではありません。
Webシステムに従来ある定石にとらわれず、自由な発想で(リラックスして!)システムの設計ができるCouchDBは開発者にとって面白くてチャレンジしがいのあるDBMSだと思います。
APIについては、CouchDBの公式WikiにあるAPIの早見表が掲載されています。APIの書き方をすぐに確認したい場合に便利です。また、CouchDBのホームページやWikiについては有志の皆さんによる日本語訳が進められています。そちらも参考になると思いますので、ぜひご覧ください。
次回はCouchDBを利用したアプリケーションの作成をテーマにする予定です。今回は機能そのものを紹介することに注力したため、開発を効率よく進めるという観点は省いていました。次からはCouchDB向けに提供されている開発用のツールやライブラリも紹介できると思います。リラックスしてご期待ください。
筆者紹介
z.ohnami
CouchDB JP所属。
くつろげるDB環境を追い求め、CouchDBと出会う。以後、趣味の1つとしてCouchDBをたしなむ。仕事では、メインフレームのプロジェクトでDBAを担当後、オープン系がメインの現場でDB設計の標準化活動とプロジェクト支援に携わる。
Copyright © ITmedia, Inc. All Rights Reserved.