droonga-groonga
は、Droongaクラスタに対してコマンドラインインターフェース経由でGroongaサーバのように通信する機能を提供します。
例えば、192.168.100.50
というDroonga Engineノードがあり、同一ネットワークセグメント内のコンピュータ192.168.100.10
にログインしている場合、全てのテーブルの一覧を出力するコマンド列は以下のようになります:
(on 192.168.100.10)
$ droonga-groonga --host 192.168.100.50 --receiver-host 192.168.100.10 --pretty \
table_list
[
[
0,
1431000097.1314175,
0.00024175643920898438
],
[
[
[
"id",
"UInt32"
],
[
"name",
"ShortText"
...
]
]
このコマンドは、Groonga互換コマンドのメッセージをdroonga-request
を用いて送信する操作を簡単に行う物です。
上記コマンド列によってもたらされる結果は、以下のコマンド列の結果と実質的に同一です:
(on 192.168.100.10)
$ echo '{"type":"table_list"}' |
droonga-request --report-request --host 192.168.100.50 --receiver-host 192.168.100.10
Request: {
"type": "table_list",
"id": "1431000097.1242323",
"date": "2015-05-07T12:01:37.124254Z",
"dataset": "Default"
}
Elapsed time: 0.011710191
{
"inReplyTo": "1431000097.1242323",
"statusCode": 200,
"type": "table_list.result",
"body": [
[
0,
1431000097.1314175,
0.00024175643920898438
],
[
[
[
"id",
"UInt32"
],
[
"name",
"ShortText"
...
]
]
}
Groonga互換コマンドのリファレンス、およびGroongaのリファレンスマニュアルも併せて参照して下さい。
groonga
コマンドとの互換性このコマンドはgroonga
コマンドのクライアントモードおよびスタンドアロンモードのように動作するよう設計されています。
このコマンドに与えられた、Droonga固有のオプションを除いた残りの全てのコマンドライン引数は、groonga
コマンドのコマンドライン引数と同様に動作します。
例:
(on 192.168.100.10)
$ GROONGA="droonga-groonga --host 192.168.100.50 --receiver-host 192.168.100.10 --pretty "
$ $GROONGA table_list
$ $GROONGA column_list --table Store
$ $GROONGA select --table Store --match_columns name --query ave --limit 5 --output_columns _key,name
ただし、現在の所groonga
コマンドの以下の機能にはまだ対応していません:
load
コマンドのための値Groonga風のコマンドライン引数と以下のDroonga固有のオプションが利用できます。
--pretty
--host=NAME
--port=PORT
10031
です。--tag=TAG
droonga
です。--dataset=NAME
Default
です。--receiver-host=NAME
--target-role=ROLE
service-provider
:
メッセージは、クラスタ内でサービスを提供中のノードで処理されます。
データ抽出操作に関わるノードには、後から遅れてメッセージが伝搬します。absorb-source
:
メッセージは、クラスタへのノード追加操作におけるデータコピー元となっているノードで処理されます。
サービスを提供中のノード、並びにデータコピー先となっているノードへは、メッセージは伝搬しません。absorb-destination
:
メッセージは、クラスタへのノード追加操作におけるデータコピー先となっているノードで処理されます。
サービスを提供中のノード、並びにデータコピー元となっているノードへは、メッセージは伝搬しません。any
:
メッセージは、--host
で指定されたノードで処理されます。既定値はany
です。
--timeout=SECONDS
3
です。-h
, --help
このコマンドは、Rubygemsのパッケージdroonga-client
の一部としてインストールされます。
# gem install droonga-client