Tablestore CLI を使用して、データテーブル内のデータを挿入、読み取り、更新、削除、スキャン、インポートまたはエクスポートします。
前提条件
Tablestore CLI がインストールされ、アクセス認証情報が設定されていること。 詳細については、「Tablestore CLI」をご参照ください。
データテーブルが作成されていること。 詳細については、「データテーブル操作」をご参照ください。
データ操作を実行する前に、次のコマンドを実行して対象のデータテーブルを選択します。
use -t <tableName>
データの挿入
データテーブルに 1 行のデータを挿入します。
put --pk '<pk_values>' --attr '<attr_json>'
|
パラメーター |
必須 |
説明 |
|
-k, --pk |
はい |
データテーブルのプライマリキー値。JSON 配列で指定します。 重要
|
|
-a, --attr |
はい |
属性列。JSON 配列で指定します。 各属性列には、次のフィールドが含まれます。
|
|
--condition |
いいえ |
行の存在条件。 条件付き更新がサポートされています。 有効な値:
|
|
-i, --input |
いいえ |
JSON 設定ファイルからデータを挿入します。 設定ファイルを使用する場合、 |
設定ファイルからデータを挿入するには、次のコマンドを実行します。
Windows
put -i D:\\localpath\\filename.json
Linux および macOS
put -i /localpath/filename.json
設定ファイルの例:
{
"PK":{
"Values":["86", 6771]
},
"Attr":{
"Values":[
{"C":"age", "V":32, "t":"integer", "TS":1626860801604}
]
}
}
例
-
プライマリキー列の値が "86" と
6771の行を挿入します。この行には、nameとcountryの 2 つの属性列があります。put --pk '["86", 6771]' --attr '[{"c":"name", "v":"田中一郎"}, {"c":"country", "v":"日本"}]' -
行が存在しない場合にのみデータを挿入します。
put --pk '["86", 6771]' --attr '[{"c":"name", "v":"田中一郎"}, {"c":"country", "v":"日本"}]' --condition not_exist
データの読み取り
プライマリキーで行を読み取ります。
指定した行が存在しない場合、空の結果が返されます。
get --pk '<pk_values>'
|
パラメーター |
必須 |
説明 |
|
-k, --pk |
はい |
データテーブルのプライマリキー値。JSON 配列で指定します。 プライマリキー列の数と型は、データテーブルのものと一致している必要があります。 |
|
-c, --columns |
いいえ |
読み取る列。 プライマリキー列または属性列をコンマで区切って指定します。 このパラメーターを設定しない場合、すべての列が返されます。 |
|
--max_version |
いいえ |
読み取るデータバージョンの最大数。 |
|
--time_range_start |
いいえ |
指定されたバージョン番号の範囲内のデータを読み取ります。 |
|
--time_range_end |
いいえ |
|
|
--time_range_specific |
いいえ |
特定のバージョン番号のデータを読み取ります。 |
|
-o, --output |
いいえ |
クエリ結果をローカルファイルに出力します。 |
例
プライマリキー列の値が "86" と 6771 の行を読み取ります。
get --pk '["86", 6771]'
データの更新
データテーブル内の行の属性列を更新します。
update --pk '<pk_values>' --attr '<attr_json>'
|
パラメーター |
必須 |
説明 |
|
-k, --pk |
はい |
データテーブルのプライマリキー値。JSON 配列で指定します。 プライマリキー列の数と型は、データテーブルのものと一致している必要があります。 |
|
--attr |
はい |
属性列。JSON 配列で指定します。 各属性列には、次のフィールドが含まれます。
|
|
--delete |
いいえ |
削除する属性列の名前を指定します。このパラメーターを |
|
--condition |
いいえ |
行の存在条件。 条件付き更新がサポートされています。 有効な値:
|
|
-i, --input |
いいえ |
JSON 設定ファイルからデータを更新します。 設定ファイルを使用する場合、--pk と --attr を指定する必要はありません。 |
設定ファイルからデータを更新するには、次のコマンドを実行します。
Windows
update -i D:\\localpath\\filename.json
Linux および macOS
update -i /localpath/filename.json
設定ファイルの形式は、データの挿入の場合と同じです。
例
-
プライマリキー列の値が "86" と 6771 の行を更新します。
update --pk '["86", 6771]' --attr '[{"c":"name", "v":"田中一郎"}, {"c":"country", "v":"日本"}]' --condition ignore -
プライマリキー値が "abc" の行から
aaa属性列を削除します。update --pk '["abc"]' --delete aaa --attr '[]'
データの削除
プライマリキーで行を削除します。
delete --pk '<pk_values>'
|
パラメーター |
必須 |
説明 |
|
-k, --pk |
はい |
データテーブルのプライマリキー値。JSON 配列で指定します。 プライマリキー列の数と型は、データテーブルのものと一致している必要があります。 |
例
プライマリキー列の値が "86" と 6771 の行を削除します。
delete --pk '["86", 6771]'
データのスキャン
データテーブルからすべてのデータまたは指定された行数のデータをスキャンして取得します。
scan --limit <n>
|
パラメーター |
必須 |
説明 |
|
--limit |
いいえ |
返される行の最大数。 このパラメーターを設定しない場合、テーブル内のすべての行がスキャンされます。 |
例
データテーブルから最大 10 行をスキャンして取得します。
scan --limit 10
データのエクスポート
データテーブルからローカルの JSON ファイルにデータをエクスポートします。
scan -o /localpath/filename.json
|
パラメーター |
必須 |
説明 |
|
-o, --output |
はい |
データのエクスポート先のローカルファイルパス。 |
|
-c, --columns |
いいえ |
エクスポートする列。 プライマリキー列または属性列をコンマで区切って指定します。 このパラメーターを設定しない場合、すべての列がエクスポートされます。 |
|
--max_version |
いいえ |
エクスポートするデータバージョンの最大数。 |
|
--time_range_start |
いいえ |
指定されたバージョン番号の範囲内のデータをエクスポートします。 time_range_start と time_range_end は、それぞれ開始と終了のタイムスタンプを指定します。 範囲は半開区間 [start, end) です。 |
|
--time_range_end |
いいえ |
|
|
--time_range_specific |
いいえ |
特定のバージョン番号のデータをエクスポートします。 |
|
--backward |
いいえ |
プライマリキーの降順でデータをエクスポートします。 |
|
-l, --limit |
いいえ |
エクスポートする行の最大数。 |
|
-b, --begin |
いいえ |
エクスポート範囲の開始点と終了点。 プライマリキーの範囲は半開区間 [start, end) です。 説明
|
|
-e, --end |
いいえ |
例
-
現在のテーブルからすべてのデータを mydata.json という名前のローカルファイルにエクスポートします。
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]'
データのインポート
ローカルの JSON ファイルからデータテーブルにデータをインポートします。
ファイルパスに ASCII 以外の文字 (日本語など) が含まれている場合、インポートが失敗することがあります。
import -i /localpath/filename.json
|
パラメーター |
必須 |
説明 |
|
-a, --action |
いいえ |
インポートモード。 有効な値:
|
|
-i, --input |
はい |
ローカルの JSON データファイルへのパス。 重要
|
|
--ignore_version |
いいえ |
タイムスタンプのチェックを無視し、現在の時刻をタイムスタンプとして使用します。 |
データファイル形式 (1 行に 1 つの JSON レコード):
{"PK":{"Values":["tanaka",0]},"Attr":{"Values":[{"C":"country","V":"japan0"},{"C":"name","V":"tanaka0"}]}}
{"PK":{"Values":["tanaka",1]},"Attr":{"Values":[{"C":"country","V":"japan1"},{"C":"name","V":"tanaka1"}]}}
例
-
mydata.json ファイルから現在のテーブルにデータをインポートします。
import -i /tmp/mydata.json -
データをインポートし、現在の時刻をタイムスタンプとして使用します。
import -i /tmp/mydata.json --ignore_version