droonga-add

概要

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
メッセージの送信先となるEngineノードのホスト名。 既定値は、コマンドを実行しているコンピュータ自身の推測されたホスト名です。
--port=PORT
Engineノードとの通信に使うポート番号。 既定値は10031です。
--tag=TAG
Engineノードとの通信に使うタグ名。 既定値はdroongaです。
--dataset=NAME
メッセージの送信先データセット名。 既定値はDefaultです。
--receiver-host=NAME
このコマンドを実行しているコンピュータのホスト名。 既定値は、そのコンピュータのホスト名として推測される名前です。
--target-role=ROLE
メッセージを処理できるEngineノードのロール。 以下のいずれかを指定します:
  • service-provider: メッセージは、クラスタ内でサービスを提供中のノードで処理されます。 データ抽出操作に関わるノードには、後から遅れてメッセージが伝搬します。
  • absorb-source: メッセージは、クラスタへのノード追加操作におけるデータコピー元となっているノードで処理されます。 サービスを提供中のノード、並びにデータコピー先となっているノードへは、メッセージは伝搬しません。
  • absorb-destination: メッセージは、クラスタへのノード追加操作におけるデータコピー先となっているノードで処理されます。 サービスを提供中のノード、並びにデータコピー元となっているノードへは、メッセージは伝搬しません。
  • any: メッセージは、--hostで指定されたノードで処理されます。

既定値はanyです。

--timeout=SECONDS
応答がない接続を打ち切るまでの待ち時間(単位:秒)です。 既定値は3です。
-h, --help
コマンドの使い方の説明を表示します。

インストール方法

このコマンドは、Rubygemsのパッケージdroonga-clientの一部としてインストールされます。

# gem install droonga-client