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

Tablestore:PutRow

最終更新日:Dec 28, 2024

行にデータを書き込みます。

説明
  • 指定した行が存在しない場合は、新しい行が追加されます。指定した行が存在する場合は、行が上書きされます。

  • リクエストへのレスポンスにエラーが含まれていない場合、リクエストは成功です。

リクエスト構文

message PutRowRequest {
    required string table_name = 1;
    required bytes row = 2; // データはPlainBuffer形式でバイナリデータとしてエンコードされます。
    required Condition condition = 3;
    optional ReturnContent return_content = 4;
    optional string transaction_id = 5;
}           

パラメーター

タイプ

必須

説明

table_name

string

はい

データを書き込むテーブルの名前。

row

bytes

はい

行に書き込むデータ。プライマリキー列と属性列を含みます。データはPlainBuffer形式でエンコードされます。PlainBufferの詳細については、PlainBuffer を参照してください。

condition

Condition

はい

データを書き込む前に、行の存在をチェックするかどうかを指定します。デフォルト値:IGNORE。有効な値:

  • IGNORE:行の存在はチェックされません。

  • EXPECT_EXIST:行が存在することが期待されます。

  • EXPECT_NOT_EXIST:行が存在しないことが期待されます。

return_content

ReturnContent

いいえ

行が正常に書き込まれた後に返すデータのタイプ。プライマリキーのみを返すことができます。ほとんどの場合、このパラメーターは自動インクリメントプライマリキー列機能で使用されます。

transaction_id

string

いいえ

ローカルトランザクションのID。ローカルトランザクション機能を使用してデータを読み取る場合は、このパラメーターが必要です。

レスポンス構文

message PutRowResponse {
    required ConsumedCapacity consumed = 1;
    optional bytes row = 2;
}         

パラメーター

タイプ

説明

consumed

ConsumedCapacity

オペレーションで消費された容量ユニット(CU)の数。CU消費の詳細については、CU消費 を参照してください。

row

bytes

return_content が指定されている場合に返されるデータ。return_content が指定されていないか、戻り値が存在しない場合は、NULL が返されます。

返されるデータはPlainBuffer形式でエンコードされます。PlainBufferの詳細については、PlainBuffer を参照してください。

Tablestore SDK の使用

以下の Tablestore SDK を使用して、単一行のデータを書き込むことができます。

CU 消費

  • データを書き込む行が存在しない場合、消費される CU の数は、condition パラメーターに指定した値によって異なります。

    • condition パラメーターの値が IGNORE の場合、消費される書き込み CU の数は、次の式を使用して計算された値から切り上げられます。消費される書き込み CU の数 = (行のすべてのプライマリキー列のデータサイズ + 書き込む属性列のデータサイズ)/4 KB。

    • condition パラメーターの値が EXPECT_NOT_EXIST の場合、書き込み CU と読み取り CU の両方が消費されます。消費される書き込み CU の数は、次の式を使用して計算された値から切り上げられます。消費される書き込み CU の数 = (行のすべてのプライマリキー列のデータサイズ + 書き込む属性列のデータサイズ)/4 KB。消費される読み取り CU の数は、次の式を使用して計算された値から切り上げられます。消費される読み取り CU の数 = 行のすべてのプライマリキー列のデータサイズ/4 KB。

    • condition パラメーターの値が EXPECT_EXIST の場合、行へのデータの書き込みは失敗します。1 つの書き込み CU と 1 つの読み取り CU が消費されます。

  • データを書き込む行が存在する場合、消費される CU の数は、condition パラメーターに指定した値によって異なります。

    • condition パラメーターの値が IGNORE の場合、消費される書き込み CU の数は、次の式を使用して計算された値から切り上げられます。消費される書き込み CU の数 = (行のすべてのプライマリキー列のデータサイズ + 書き込む属性列のデータサイズ)/4 KB。

    • condition パラメーターの値が EXPECT_EXIST の場合、書き込み CU と読み取り CU の両方が消費されます。消費される書き込み CU の数は、次の式を使用して計算された値から切り上げられます。消費される書き込み CU の数 = (行のすべてのプライマリキー列のデータサイズ + 書き込む属性列のデータサイズ)/4 KB。消費される読み取り CU の数は、次の式を使用して計算された値から切り上げられます。消費される読み取り CU の数 = 行のすべてのプライマリキー列のデータサイズ/4 KB。

    • condition パラメーターの値が EXPECT_NOT_EXIST の場合、行へのデータの書き込みは失敗します。1 つの書き込み CU と 1 つの読み取り CU が消費されます。

    データサイズの計算方法の詳細については、課金概要 を参照してください。

  • 条件付き更新を使用する場合、操作が成功した場合、消費される CU の数は上記の式を使用して計算されます。操作が失敗した場合、1 つの書き込み CU と 1 つの読み取り CU が消費されます。

  • リクエストがタイムアウトし、結果が未定義の場合、CU が消費される場合とされない場合があります。

  • 内部エラーが発生し、HTTP ステータスコード 5xx が返された場合、操作は CU を消費しません。その他のエラーが発生した場合、1 つの書き込み CU が消費されます。