Tablestore CLI を使用して、セカンダリインデックスを作成および管理します。
前提条件
Tablestore CLI がインストールされ、アクセス認証情報が設定されていること。詳細については、「Tablestore CLI」をご参照ください。
定義済み列を持つデータテーブルが存在すること。最大バージョン数 (max versions) は 1 である必要があります。詳細については、「データテーブル操作」をご参照ください。
セカンダリインデックスの作成
データテーブルに対して、グローバルまたはローカルの セカンダリインデックス を作成します。
create_index -t <tableName> -n <indexName> -i <indexType> -k <primaryKeyName> -a <definedColumn>
|
パラメーター |
必須 |
説明 |
|
-t, --table |
いいえ |
データテーブル名。 |
|
-n, --name |
はい |
セカンダリインデックス名。 |
|
-i, --index_type |
いいえ |
セカンダリインデックスのタイプ。有効な値:
|
|
-k, --pk |
はい |
インデックステーブルのインデックス列。データテーブルのプライマリキー列と定義済み列で構成されます。複数の列はカンマで区切ります。ローカルセカンダリインデックスの場合、インデックステーブルの最初のプライマリキー列は、データテーブルの最初のプライマリキー列と同じである必要があります。 |
|
-a, --attr |
はい |
インデックステーブルの属性列。データテーブルの定義済み列です。複数の列はカンマで区切ります。 |
|
-b, --without_base_data |
いいえ |
セカンダリインデックス作成時に、データテーブルの既存データを除外します。デフォルトでは、既存データが含まれます。 |
例
-
データテーブル mytable に対して、既存データを含むグローバルセカンダリインデックス index0 を作成します。
create_index -t mytable -n index0 -i global -k uid,pid -a name,col0 -
データテーブル mytable に対して、既存データを除外したグローバルセカンダリインデックス index1 を作成します。
create_index -t mytable -n index1 -i global -k uid,pid -a name,col0 -b -
データテーブル mytable に対して、ローカルセカンダリインデックス index2 を作成します。
create_index -t mytable -n index2 -i local -k uid,name -a col0,col1
インデックステーブルの使用
後続のクエリおよびエクスポート操作のために、インデックステーブルを選択します。
use --wc -t <indexName>
|
パラメーター |
必須 |
説明 |
|
--wc |
いいえ |
指定されたテーブルが多次元インデックスではなく、データテーブルまたはインデックステーブルであることを示します。 |
|
-t, --table |
はい |
インデックステーブル名。 |
例
インデックステーブル index0 を使用します。
use -t index0
インデックス情報の表示
desc コマンドを実行して、データテーブルとそのセカンダリインデックスに関する情報を表示します。
desc -t <tableName>
|
パラメーター |
必須 |
説明 |
|
-t, --table |
いいえ |
データテーブルまたはインデックステーブル名。 |
|
-f, --print_format |
いいえ |
出力フォーマット。有効な値: json (デフォルト) および table。 |
|
-o, --output |
いいえ |
テーブル情報をローカルの JSON ファイルに出力します。 |
例
-
現在のテーブルに関する情報を表示します。
desc -
テーブル情報をローカルファイルに保存します。
desc -o /tmp/describe_table_meta.json
データの読み取り
プライマリキーを指定して、インデックステーブルから 1 行のデータを読み取ります。
指定した行が存在しない場合、空の結果が返されます。
get -k '<pk_values>'
|
パラメーター |
必須 |
説明 |
|
-k, --pk |
はい |
インデックステーブルのプライマリキー値。JSON 配列として表現されます。プライマリキー列の数と型は、インデックステーブルのものと一致する必要があります。 |
|
-c, --columns |
いいえ |
読み取る列。プライマリキー列または属性列を指定します。複数の列はカンマで区切ります。指定しない場合、行全体が返されます。 |
|
--max_version |
いいえ |
読み取る最大バージョン数。 |
|
--time_range_start |
いいえ |
指定されたタイムスタンプ範囲内のデータを読み取ります。 |
|
--time_range_end |
いいえ |
|
|
--time_range_specific |
いいえ |
特定のバージョン番号のデータを読み取ります。 |
|
-o, --output |
いいえ |
クエリ結果をローカルの JSON ファイルに出力します。 |
例
プライマリキー値が "86" と 6771 であるインデックステーブルの行を読み取ります。
get -k '["86", 6771]'
データのスキャン
インデックステーブルをスキャンして、すべてのデータまたは指定した行数を取得します。
scan --limit <n>
|
パラメーター |
必須 |
説明 |
|
--limit |
いいえ |
返される最大行数。指定しない場合、テーブル内のすべての行がスキャンされます。 |
例
インデックステーブルから最大 10 行をスキャンします。
scan --limit 10
データのエクスポート
インデックステーブルからローカルの JSON ファイルにデータをエクスポートします。
scan -o /localpath/filename.json
|
パラメーター |
必須 |
説明 |
|
-c, --columns |
いいえ |
エクスポートする列。プライマリキー列または属性列を指定します。複数の列はカンマで区切ります。指定しない場合、行全体がエクスポートされます。 |
|
--max_version |
いいえ |
エクスポートする最大バージョン数。 |
|
--time_range_start |
いいえ |
指定されたタイムスタンプ範囲内のデータをエクスポートします。 |
|
--time_range_end |
いいえ |
|
|
--time_range_specific |
いいえ |
特定のバージョン番号のデータをエクスポートします。 |
|
--backward |
いいえ |
プライマリキーの降順でデータをエクスポートします。 |
|
-o, --output |
はい |
データをエクスポートするローカルファイルパス。 |
|
-l, --limit |
いいえ |
エクスポートする最大行数。 |
|
-b, --begin |
いいえ |
エクスポート範囲の開始点と終了点。プライマリキー範囲は半開区間です: [start, end)。 説明
|
|
-e, --end |
いいえ |
例
-
インデックステーブルのすべてのデータをローカルファイルにエクスポートします。
scan -o /tmp/mydata.json -
uid と name 列のみをエクスポートします。
scan -o /tmp/mydata.json -c uid,name -
指定したプライマリキー範囲内のデータをエクスポートします。
scan -o /tmp/mydata.json -b '["86", 6771]' -e '["86", 6775]'
セカンダリインデックスの削除
不要になったインデックステーブルを削除します。
drop_index -t <tableName> -i <indexName> -y
|
パラメーター |
必須 |
説明 |
|
-t, --table |
いいえ |
データテーブル名。 |
|
-i, --index |
はい |
セカンダリインデックス名。 |
|
-y, --yes |
はい |
削除の確認を省略します。 |
例
-
現在のデータテーブルからインデックステーブル index0 を削除します。
drop_index -i index0 -y -
データテーブル mytable からインデックステーブル index0 を削除します。
drop_index -t mytable -i index0 -y