Tablestore CLI を使用して、データの挿入、読み取り、更新、削除、スキャン、エクスポート、インポートを実行できます。
データの挿入
データテーブルにデータ行を挿入できます。または、JSON 設定ファイルをインポートして、データテーブルにデータ行を挿入することもできます。
コマンド構文
put --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
-k,--pk | はい | ["86", 6771] | 行のプライマリキー列の値。このパラメーターの値は配列です。 重要
|
-a,--attr | はい | [{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}] | 行の属性列。このパラメーターの値は JSON 配列です。各属性列は、次のフィールドを使用して指定されます。
|
--condition | いいえ | ignore | データ行を挿入するかどうかを決定するために使用される、条件付き更新の行存在条件。デフォルト値: ignore。有効な値:
詳細については、条件付き更新 を参照してください。 |
-i, --input | いいえ | /temp/inputdata.json | データの挿入に使用する 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,
"TS":1626860801604,
"IsInt":true
}
]
}
}
例
例 1
次のサンプルコードは、データテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は 6771 です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。
put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
例 2
次のサンプルコードは、データテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は 6771 です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。この例では、行が存在するかどうかに関係なく、データが挿入されます。行が存在する場合、挿入されたデータは既存のデータを上書きします。
put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]' --condition ignore
例 3
次のサンプルコードは、データテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は 6771 です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。country 列のデータのタイムスタンプは 15327798534 です。
put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "t":"string", "ts":15327798534}]'
例 4
次のサンプルコードは、2 番目のプライマリキー列が自動インクリメントプライマリキー列であるデータテーブルにデータ行を挿入する方法の例を示しています。行の最初のプライマリキー列の値は "86" です。行の 2 番目のプライマリキー列の値は null です。行には、name と country の 2 つの属性列が含まれています。name 列と country 列は STRING 型です。
put --pk '["86", null]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'
データの読み取り
データテーブルからデータを読み取り、ローカルの JSON ファイルにエクスポートできます。
読み取る行が存在しない場合は、空の結果が返されます。
コマンド構文
get --pk '[primaryKeyValue,primaryKeyValue]'
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
-k,--pk | はい | ["86",6771] | 行のプライマリキー列の値。このパラメーターの値は配列です。 重要 指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。 |
-c,--columns | いいえ | name,uid | 読み取る列。プライマリキー列または属性列の名前を指定できます。列を指定しない場合は、行のすべてのデータが返されます。 |
--max_version | いいえ | 1 | 読み取ることができるデータバージョンの最大数。 |
--time_range_start | いいえ | 1626860469000 | 読み取るデータのバージョン範囲。time_range_start パラメーターは開始タイムスタンプを指定し、time_range_end パラメーターは終了タイムスタンプを指定します。範囲には開始値が含まれ、終了値は含まれません。 |
--time_range_end | いいえ | 1626865270000 | |
--time_range_specific | いいえ | 1626862870000 | 読み取るデータの特定のバージョン。 |
-o, --output | いいえ | /tmp/querydata.json | クエリ結果がエクスポートされる JSON ファイルのローカルパス。 |
例
次のサンプルコードは、最初のプライマリキー列の値が "86" で、2 番目のプライマリキー列の値が 6771 であるデータ行を読み取る方法の例を示しています。
get --pk '["86",6771]'
データの更新
データテーブルのデータ行を更新できます。または、JSON 設定ファイルをインポートして、データテーブルのデータ行を更新することもできます。
コマンド構文
update --pk '[primaryKeyValue, primaryKeyValue]' --attr '[{"c":"attributeColumnName", "v":"attributeColumnValue"}, {"c":"attributeColumnName", "v":"attributeColumnValue", "ts":timestamp}]' --condition condition
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
-k,--pk | はい | ["86", 6771] | 行のプライマリキー列の値。このパラメーターの値は配列です。 重要 指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。 |
--attr | はい | [{"c":"name", "v":"redchen"}, {"c":"country", "v":"china", "ts":15327798534}] | 行の属性列。このパラメーターの値は JSON 配列です。各属性列は、次のフィールドを使用して指定されます。
|
--condition | いいえ | ignore | データ行を更新するかどうかを決定するために使用される、条件付き更新の行存在条件。デフォルト値: ignore。有効な値:
詳細については、条件付き更新 を参照してください。 |
-i, --input | いいえ | /tmp/inputdata.json | データの更新に使用する JSON 設定ファイルのパス。 |
設定ファイルを使用してデータを更新することもできます。コマンド構文は、オペレーティングシステムによって異なります。
Windows
update -i D:\\localpath\\filename.json
Linux および macOS
update -i /localpath/filename.json
次のサンプルコードは、設定ファイルの内容の例を示しています。
{
"PK":{
"Values":[
"86",
6771
]
},
"Attr":{
"Values":[
{
"C":"age",
"V":32,
"TS":1626860801604,
"IsInt":true
}
]
}
}
例
次のサンプルコードは、最初のプライマリキー列の値が "86" で、2 番目のプライマリキー列の値が 6771 であるデータ行を更新する方法の例を示しています。この例では、行が存在するかどうかに関係なく、データが挿入されます。行が存在する場合、挿入されたデータは既存のデータを上書きします。
update --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]' --condition ignore
データの削除
指定されたプライマリキーを持つデータ行を削除できます。
コマンド構文
delete --pk '[primaryKeyValue,primaryKeyValue]'
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
-k,--pk | はい | ["86", 6771] | 行のプライマリキー列の値。このパラメーターの値は配列です。 重要 指定するプライマリキー列の数と型は、データテーブル内のプライマリキー列の実際の数と型と同じである必要があります。 |
例
次のサンプルコードは、最初のプライマリキー列の値が "86" で、2 番目のプライマリキー列の値が 6771 であるデータ行を削除する方法の例を示しています。
delete --pk '["86", 6771]'
データのスキャン
データテーブルをスキャンして、データテーブル内のすべてのデータまたは指定された数のデータ行を取得できます。
コマンド構文
scan --limit limit
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
--limit | いいえ | 10 | スキャンする行の最大数。このパラメーターを設定しない場合、データテーブル内のすべてのデータがスキャンされます。 |
例
次のサンプルコードは、データテーブルで最大 10 行のデータをスキャンする方法の例を示しています。
scan --limit 10
データのエクスポート
データテーブルからローカルの JSON ファイルにデータをエクスポートできます。
コマンド構文
scan -o /localpath/filename.json -c attributeColumnName,attributeColumnName,attributeColumnName
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
-c, --columns | はい | uid,name | エクスポートする列のセット。プライマリキー列または属性列の名前を指定できます。列名を指定しない場合は、行のすべてのデータがエクスポートされます。 |
--max_version | いいえ | 1 | エクスポートできるデータバージョンの最大数。 |
--time_range_start | いいえ | 1626865596000 | エクスポートするデータのバージョン範囲。time_range_start パラメーターは開始タイムスタンプを指定し、time_range_end パラメーターは終了タイムスタンプを指定します。範囲には開始値が含まれ、終了値は含まれません。 |
--time_range_end | いいえ | 1626869196000 | |
--time_range_specific | いいえ | 1626867396000 | エクスポートするデータの特定のバージョン。 |
--backward | いいえ | 該当なし | エクスポートされたデータをプライマリキーの降順でソートするように指定します。 |
-o, --output | はい | /tmp/mydata.json | クエリ結果がエクスポートされる JSON ファイルのローカルパス。 |
-l, --limit | いいえ | 10 | クエリで返す行の最大数。 |
-b, --begin | いいえ | '["86", 6771]' | エクスポートするデータの値の範囲。プライマリキーの範囲は、左閉右開区間です。 説明
|
-e, --end | いいえ | '["86", 6775]' |
例
例 1
次のサンプルコードは、現在のテーブルから mydata.json という名前のローカルファイルにすべてのデータをエクスポートする方法の例を示しています。
scan -o /tmp/mydata.json
例 2
次のサンプルコードは、現在のテーブルの uid 列と name 列のデータを mydata.json ローカルファイルにエクスポートする方法の例を示しています。
scan -o /tmp/mydata.json -c uid,name
例 3
次のサンプルコードは、プライマリキー値が特定の範囲内にあるデータを現在のテーブルから mydata.json ローカルファイルにエクスポートする方法の例を示しています。エクスポートが開始される最初のプライマリキー列の値は "86" です。エクスポートが開始される 2 番目のプライマリキー列の値は 6771 です。エクスポートが終了する最初のプライマリキー列の値は "86" です。エクスポートが終了する 2 番目のプライマリキー列の値は 6775 です。
scan -o D:\\0testreport\\mydata.json -b '["86", 6771]' -e '["86", 6775]'
例 4
次のサンプルコードは、プライマリキー値が特定の範囲内にあるデータを現在のテーブルから mydata.json ローカルファイルにエクスポートする方法の例を示しています。エクスポートが開始される最初のプライマリキー列の値は "50" で、エクスポートが終了する最初のプライマリキー列の値は "100" です。2 番目のプライマリキー列の値の範囲は指定されていません。
scan -o /tmp/mydata.json -b '["50",null]' -e '["100",null]'
データのインポート
ローカルの JSON ファイルからデータテーブルにデータをインポートできます。
ローカル JSON ファイルのパスに漢字が含まれている場合、データをインポートするとエラーが発生します。
コマンド構文
import -i /localpath/filename.json --ignore_version
次の表に、コマンドのパラメーターを示します。
パラメーター | 必須 | 例 | 説明 |
-a, --action | いいえ | put | データのインポートモード。デフォルト値: put。有効な値:
|
-i, --input | はい | /tmp/inputdata.json | 現在のデータテーブルにデータがインポートされるローカル JSON ファイルのパス。 |
--ignore_version | いいえ | 該当なし | タイムスタンプチェックを無視し、現在の時刻をタイムスタンプとして使用します。 |
次のサンプルコードは、ローカル設定ファイルの内容の例を示しています。
{"PK":{"Values":["redchen",0]},"Attr":{"Values":[{"C":"country","V":"china0"},{"C":"name","V":"redchen0"}]}}
{"PK":{"Values":["redchen",1]},"Attr":{"Values":[{"C":"country","V":"china1"},{"C":"name","V":"redchen1"}]}}
例
例 1
次のサンプルコードは、mydata.json ファイルから現在のデータテーブルにデータをインポートする方法の例を示しています。
import -i /tmp/mydata.json
例 2
次のサンプルコードは、現在の時刻をタイムスタンプとして使用して、mydata.json ファイルから現在のデータテーブルにデータをインポートする方法の例を示しています。
import -i /tmp/mydata.json --ignore_version