検索
連載

APIとDesign Documentでカクテルブックに挑戦ゆったリラックス! CouchDBがあるところ(2)(5/5 ページ)

オープンソースでモダンなドキュメント指向データベース、CouchDB。今回は実践的な「カクテルレシピブック」を作りながら、CouchDBの特長を解説します。サンプルプログラムをダウンロードし、実際に体験してみてください。(編集部)

Share
Tweet
LINE
Hatena
前のページへ |       

そのほかの管理向け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向けに提供されている開発用のツールやライブラリも紹介できると思います。リラックスしてご期待ください。

筆者紹介

CouchDB JP

z.ohnami

CouchDB JP所属。

くつろげるDB環境を追い求め、CouchDBと出会う。以後、趣味の1つとしてCouchDBをたしなむ。仕事では、メインフレームのプロジェクトでDBAを担当後、オープン系がメインの現場でDB設計の標準化活動とプロジェクト支援に携わる。



Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る