このプロジェクトは sourceforge.net にてホストされています。
このページの英語版 (English version) があります。
YALTools (aka lscouchdb) はRubyを使用した Apache CouchDB用のコマンドラインツール群です。
UNIX系OSで標準的なコマンドに似た "mkdb", "rmdb", "lsdbs", "lsdocs", "putdocs", "csv2json" などのコマンドを提供します。
YALToolsはUNIX環境におけるフィルターやパイプの力をCouchDBの環境にもたらし、管理者の労力を軽減し、Paginationアプリケーション環境の提供を目指しています。
[ chapter top | page top ]
YALToolsは一文書一行ベースでの処理を基本的な単位としています。
コマンド群はライブラリを持ちいて構築されています。
[ chapter top | page top ]
YALTools管理者向けのコマンドセットを提供します。
"lsdocs" と "putdocs" コマンドは CouchDB の /_all_docs, /_bulk_docs インタフェースを使用します。 これにより大量のドキュメントをpipeを通して処理することが可能です。
## Example: copy documents of DB:test01 to DB:test02 including attachments. $ bin/lsdocs -a test01 | bin/reducejson -e '["_rev"]' | bin/postdocs test02
各コマンドは附属のライブラリをベースに作成されています。 このライブラリを使う事で、コマンドの機能を拡張したりアプリケーションに組み込む事ができます。
YALToolsライブラリは"skip", "limit"クエリパラメータを自動的に調整することで、大量のデータ処理を実現しています。
[ chapter top | page top ]
Paginationを効率的に処理するために全件数を把握することが必要になります。
デフォルトではViewでgroup=trueオプションを使用した場合に、出力対象となる全件数を把握することは困難です。
このgroup_numrowsビュー・クエリ・オプションは、SQLの"SELECT COUNT(DISTINCT column)"クエリのような処理を実現します。
YALToolsはJRuby 1.6.0 RC2でも動かすことができますが、jruby-jsonパッケージを追加で導入する必要があります。
$ jruby-1.6.0.RC2/bin/jgem install jruby-json jruby-openssl $ export JRUBY_OPTS="--1.9"
jruby-opensslパッケージは任意ですが、警告が表示されるので問題なければ導入される事をお勧めします。
JRUBY_OPTS="--1.9""の作業はcsv2jsonコマンドを実行する際に必要になります。
[ chapter top | page top ]
任意のディレクトリにtar.bz2パッケージを展開します。
$ tar xvjf lscouchdb.20110222.tar.bz2
他にはGitHubからリポジトリをコピーする事もできます。 開発中の現時点では、この方法がお勧めです。
$ git clone git://lscouchdb.git.sourceforge.net/gitroot/lscouchdb/lscouchdb
utils/conf/yalt.yamlファイルを調整し、認証のために "default.user" ラベルに対応する情報を書き込みます。
$ cd lscouchdb/utils $ vi conf/yalt.yaml --- default.user: host: 127.0.0.1 port: 5984 user: admin password: xxxxxx
デフォルトでは各コマンドが "/usr/local/bin/ruby" を使うようになっています。
例えばMacOS X 10.6では "ruby" ではなく、"ruby1.9" が導入されています。
こういった場合には lscouchdb/sbin/change_ruby_command_name.sh スクリプトでrubyコマンドのパスを書き換えてください。
$ ../sbin/change_ruby_command_name.sh ruby1.9 using temporary file: /tmp/replrubycmd.YCnn4iRPaD Selected ruby command name: /opt/local/bin/ruby1.9 writing script: sbin/../utils/bin/chjson writing script: sbin/../utils/bin/csv2json ... finished.
$ sbin/lsdbs | bin/jsonfmt {"database":[ "_users", "test" ]}
「事例集」のページを読んでください。
[ chapter top | page top ]
Created: 2011-02-28T03:30:35+09:00
Last modified: 2011-04-04T01:40:55+09:00
lscouchdb.sourceforge.net by Yasuhiro ABE is licensed under a Creative Commons Attribution 2.1 Japan License. Permissions beyond the scope of this license may be available at http://lscouchdb.sourceforge.net/license.html.