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が指定されると、データは表示されません。