すべてのプロダクト
Search
ドキュメントセンター

Tablestore:データ操作

最終更新日:Jun 09, 2026

Tablestore CLI を使用して、データテーブル内のデータを挿入、読み取り、更新、削除、スキャン、インポートまたはエクスポートします。

前提条件

  • Tablestore CLI がインストールされ、アクセス認証情報が設定されていること。 詳細については、「Tablestore CLI」をご参照ください。

  • データテーブルが作成されていること。 詳細については、「データテーブル操作」をご参照ください。

データ操作を実行する前に、次のコマンドを実行して対象のデータテーブルを選択します。

use -t <tableName>

データの挿入

データテーブルに 1 行のデータを挿入します。

put --pk '<pk_values>' --attr '<attr_json>'

パラメーター

必須

説明

-k, --pk

はい

データテーブルのプライマリキー値。JSON 配列で指定します。

重要
  • プライマリキー列の数と型は、データテーブルのものと一致している必要があります。

  • プライマリキー列が自動インクリメント列の場合、その値をプレースホルダー null に設定します。

-a, --attr

はい

属性列。JSON 配列で指定します。 各属性列には、次のフィールドが含まれます。

  • c (必須): 属性列名。

  • v (必須): 属性列の値。

  • t (任意): 属性列の型。 有効な値:integer、string (UTF-8 エンコード文字列)、binary、ブール型、double。 属性列の型が binary の場合、このフィールドは必須です。

  • ts (任意): タイムスタンプ (データバージョン) です。 このパラメーターを設定しない場合、Tablestore はタイムスタンプを生成します。

--condition

いいえ

行の存在条件。 条件付き更新がサポートされています。 有効な値:

  • ignore (デフォルト): 行が存在するかどうかに関係なくデータを挿入します。 既存の行は上書きされます。

  • exist: 行が存在する場合にのみデータを挿入します。 既存のデータは上書きされます。

  • not_exist: 行が存在しない場合にのみデータを挿入します。

-i, --input

いいえ

JSON 設定ファイルからデータを挿入します。 設定ファイルを使用する場合、--pk--attr を指定する必要はありません。

設定ファイルからデータを挿入するには、次のコマンドを実行します。

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 の行を挿入します。この行には、namecountry の 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_starttime_range_end は、それぞれ開始と終了のタイムスタンプを指定します。 範囲は半開区間 [start, end) です。

--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 配列で指定します。 各属性列には、次のフィールドが含まれます。

  • c (必須): 属性列名。

  • v (必須): 属性列の値。

  • t (任意): 属性列の型。 有効な値:integer、string (UTF-8 エンコード文字列)、binary、ブール型、double。 属性列の型が binary の場合、このフィールドは必須です。

  • ts (オプション): データバージョンであるタイムスタンプです。このパラメーターを設定しない場合、 Tablestore がタイムスタンプを生成します。

--delete

いいえ

削除する属性列の名前を指定します。このパラメーターを --attr '[]' と共に使用すると、他の列を更新することなく、指定した属性列を削除できます。属性列を削除する場合、--delete と --attr の両方が必須です。

--condition

いいえ

行の存在条件。 条件付き更新がサポートされています。 有効な値:

  • ignore (デフォルト): 行が存在するかどうかに関係なくデータを更新します。

  • exist: 行が存在する場合にのみデータを更新します。

  • not_exist: 行が存在しない場合にのみデータを挿入します。

-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) です。

説明
  • --begin[null,null] に設定すると、開始点は [INF_MIN,INF_MIN] となり、各プライマリキー列の最小値から開始することを意味します。

  • --end[null,null] に設定すると、終了点は [INF_MAX,INF_MAX] となり、各プライマリキー列の最大値で終了することを意味します。

-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

いいえ

インポートモード。 有効な値:

  • put (デフォルト): 行が存在する場合、元の行データ (すべての列とすべてのバージョン) を削除してから、新しい行データを書き込みます。

  • update: 行が存在する場合、属性列の追加または削除、特定のバージョンのデータの削除、属性列の値の更新ができます。 行が存在しない場合は、新しい行が挿入されます。

-i, --input

はい

ローカルの JSON データファイルへのパス。

重要
  • プライマリキー列の数と型は、データテーブルのものと一致している必要があります。

  • プライマリキー列が自動インクリメント列の場合、その値をプレースホルダー null に設定します。

--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