droonga-add
は、Droongaクラスタ内の指定されたテーブルについて、新しいレコードの追加および既存レコードの更新を行います。
例えば、192.168.100.50
というDroonga Engineノードがあり、同一ネットワークセグメント内のコンピュータ192.168.100.10
にログインしている場合、クラスタ内のUser
テーブルにレコードを1つ追加するコマンド列は以下のようになります:
(on 192.168.100.10)
$ droonga-add --host 192.168.100.50 --receiver-host 192.168.100.10 \
--table User --key id1 --name Adam --age 20
Adding new record...
{
"table": "Store",
"key": "id1",
"values": {
"name": "Adam",
"age": "20"
}
}
Done.
このコマンドは、typeがadd
であるメッセージをdroonga-request
を用いて送信する操作を簡単に行う物です。
上記コマンド列によってもたらされる結果は、以下のコマンド列の結果と実質的に同一です:
(on 192.168.100.10)
$ echo '{"type":"add","body":{"key":"id1","values":{"name":"Adam","age":20}}}' |
droonga-request --report-request --host 192.168.100.50 --receiver-host 192.168.100.10
Request: {
"type": "add",
"body": {
"table": "Store",
"key": "id1",
"values": {
"name": "Adam",
"age": "20"
}
},
"id": "1430961788.4171028",
"date": "2015-05-07T02:39:50.334377Z",
"dataset": "Default"
}
Elapsed time: 0.023309135
{
"inReplyTo": "1430961788.4171028",
"statusCode": 200,
"type": "add.result",
"body": true
}
add
コマンドのリファレンスも併せて参照して下さい。
--table=TABLE
(必須)--key=KEY
--(COLUMN NAME)=(VALUE)
, --value:(COLUMN NAME)=(VALUE)
host
のように既存の他のパラメータと同じ名前のカラムの値を指定する場合は、--value:
という接頭辞を付ける必要があります。--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