get
get kv
get kv [-key <keyString>] [-file <output>] [-all] [-keyonly]
[-valueonly] [-start <prefixString>] [-end <prefixString>]
指定されたキーを使用して単純なget操作を実行します。取得した値に表示可能な文字が含まれている場合はそれが出力され、そうでない場合は、そのバイト配列がBase64を使用して表示用にエンコーディングされます。この変換を示すために"[Base64]"が追加されます。getコマンドの引数は次のとおりです。
-
-key <keyString>
使用するフル・パスまたは接頭辞キー・パスを示します。
<keyString>
がフル・キー・パスの場合、1つの値の情報が返されます。このget
コマンドの形式は、get -key <keyString>
です。<keyString>
が接頭辞キー・パスである場合、複数のキー/値のペアが返されます。このget
コマンドの形式は、get -key <keyString> -all
です。キーはメジャーおよびマイナー・キー・パスの両方、またはメジャー・キー・パスのみから構成されます。<keyString>>の形式は、major-key-path/-/minor-key-pathです。さらに、接頭辞キー・パスの場合、キーはメジャー・キー・パスの接頭辞部分から構成されます。たとえば、KVStoreにある次のサンプル・キーを考えます。
/group/TC/-/user/bob /group/TC/-/user/john /group/TC/-/dep/IT /group/SZ/-/user/steve /group/SZ/-/user/diana
メジャー・キー・パスの接頭辞部分のみを含むキーを指定したgetコマンドは、次のようになります。
kv -> get kv -key /group -all -keyonly /group/TC/-/user/bob /group/TC/-/user/john /group/TC/-/dep/IT /group/SZ/-/user/steve /group/SZ/-/user/diana
メジャー・キー・パスを含むキーを指定したgetコマンドは、次のようになります。
kv -> get kv -key /group/TC -all -keyonly /group/TC/-/user/bob /group/TC/-/user/john /group/TC/-/dep/IT
メジャーおよびマイナー・キー・パスを含むキーを指定したgetコマンドは、次のようになります。
kv -> get kv -key /group/TC/-/user -all -keyonly /group/TC/-/user/bob /group/TC/-/user/john kv -> get kv -key /group/TC/-/user/bob { "name" : "bob.smith", "age" : 20, "email" : "bob.smith@example.com", "phone" : "408 555 5555" }
-
-file <output>
切り捨てられる出力ファイルを指定して、既存の内容をすべて、新しい内容で置き換えます。
次の例では、キー
/Smith/Bob
からのレコードが、ファイル"data.out"
に書き込まれます。kv -> get kv -key /Smith/Bob -all -file ./data.out
次の例では、ファイル
"data.out"
の内容が、キー/Wong/Bill
からのレコードで置き換えられます。kv -> get kv -key /Wong/Bill -all -file ./data.out
-
-all
指定のキーで始まる反復に指定されます。キーの引数が指定されていない場合、ストア全体が反復されます。
-
-keyonly
-all
とともに指定され、キーのみを返します。 -
-valueonly
-all
とともに指定され、値のみを返します。 -
-start <prefixString>
and-end <prefixString>
反復に使用される範囲を制限します。これは特に、適切にフォーマットされた文字列などのキー・コンポーネントに基づいたレコードの範囲を取得する場合に有効です。
-start
および-end
引数は、どちらも両端を含みます。ノート:
-start
および-end
は、-key <keyString>
で指定されたキー・コンポーネントにのみ影響します。<keyString>
の値は単純な文字列で構成する必要があり、複数のキー・コンポーネントを指定することはできません。たとえば、キー構造が次のようになっているログを考えます。
/log/<year>/<month>/-/<day>/<time>
同じ日のすべてのログ・エントリは同じパーティションに入れられますが、日付によってシャード間での分割が行われます。
time
フォーマットは、"hour.minute"です。そのため、次のように指定して、2013年2月および3月のすべてのログ・エントリの
get
が可能です。kv-> get kv -all -keyonly -key /log/2013 -start 02 -end 03 /log/2013/02/-/01/1.45 /log/2013/02/-/05/3.15 /log/2013/02/-/15/10.15 /log/2013/02/-/20/6.30 /log/2013/02/-/28/8.10 /log/2013/03/-/01/11.13 /log/2013/03/-/15/2.28 /log/2013/03/-/22/4.52 /log/2013/03/-/31/11.55
より完全なキー・パスを指定すると、より明確な
get
コマンドになります。たとえば、4月1日から4月4日までのすべてのログ・エントリを表示するには、次のようにします。kv-> get kv -all -keyonly -key /log/2013/04 -start 01 -end 04 /log/2013/04/-/01/1.03 /log/2013/04/-/01/4.05 /log/2013/04/-/02/7.22 /log/2013/04/-/02/9.40 /log/2013/04/-/03/4.15 /log/2013/04/-/03/6.30 /log/2013/04/-/03/10.25 /log/2013/04/-/04/4.10 /log/2013/04/-/04/8.35
サブコマンド「get table」を参照してください。
get table
kv-> get table -name <table_name> [-index <name>]
[-field <name> -value <value>]+
[-field <name> [-start <value>] [-end <value>]]
[-ancestor <name>]+ [-child <name>]+
[-json <string>] [-file <output>] [-keyonly]
[-pretty] [-report-size]
次のいずれかの表名を指定します。
-name
次のいずれかの表を識別します。
table_name
–ターゲット表は、デフォルト・ネームスペースのsysdefault
で作成される最上位の表です。このような表を指定するために、デフォルト・ネームスペース(sysdefault:
)の接頭辞は必要ありません。table_name.child_name
–ターゲット表は、親表の子です。表名を指定するには、child_name
の前に、親のtable_name
と、続けてピリオド(.)のセパレータを追加します。namespace_name:table_name
–ターゲット表はデフォルト・ネームスペース(sysdefault
)内に作成されていません。表名table_name
を指定するには、その前にnamespace_name
と、続けてコロン(:)を追加します。namespace_name:table_name.child_name
–ターゲット表は、ネームスペースで作成された親表の子です。表名を指定するには、child_name
の前に、namespace_name:
と親のtable_name
の両方、続けてピリオド(.)のセパレータを追加します。
-field
および-value
のペアを使用して主キーのフィールド値を指定するか、-index
で指定された索引を使用している場合は索引キーのフィールド値を指定するか、あるいはキーを空にして表全体で繰り返します。-
-field
フラグは、-start
および-end
フラグと一緒に使用して、最後に指定されたフィールドの有効範囲を定義できます。 -
-ancestor
および-child
フラグを使用して、ターゲット表に加えて特定の祖先表または子孫表(あるいはその両方)の結果を返します。 -
-json
はキー・フィールド値がJSON形式であることを示します。 -
-file
を使用して出力ファイルを指定します。出力ファイルは切り捨てられます。 -
-keyonly
は、情報をキーのみに制限するときに使用されます。 -
-pretty
は、インデントおよび改行できれいにフォーマットされたJSON文字列に使用されます。 -
-report-size
は、レコードを照合するための主キー、データ値および索引キーの、キーとデータのサイズ情報を表示するために使用されます。-report-size
が指定されると、データは表示されません。