行にデータを書き込みます。
指定した行が存在しない場合は、新しい行が追加されます。指定した行が存在する場合は、行が上書きされます。
リクエストへのレスポンスにエラーが含まれていない場合、リクエストは成功です。
リクエスト構文
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 | はい | データを書き込む前に、行の存在をチェックするかどうかを指定します。デフォルト値:IGNORE。有効な値:
| |
return_content | いいえ | 行が正常に書き込まれた後に返すデータのタイプ。プライマリキーのみを返すことができます。ほとんどの場合、このパラメーターは自動インクリメントプライマリキー列機能で使用されます。 | |
transaction_id | string | いいえ | ローカルトランザクションのID。ローカルトランザクション機能を使用してデータを読み取る場合は、このパラメーターが必要です。 |
レスポンス構文
message PutRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
パラメーター | タイプ | 説明 |
consumed | オペレーションで消費された容量ユニット(CU)の数。CU消費の詳細については、CU消費 を参照してください。 | |
row | bytes | return_content が指定されている場合に返されるデータ。return_content が指定されていないか、戻り値が存在しない場合は、NULL が返されます。 返されるデータはPlainBuffer形式でエンコードされます。PlainBufferの詳細については、PlainBuffer を参照してください。 |
Tablestore SDK の使用
以下の Tablestore SDK を使用して、単一行のデータを書き込むことができます。
Tablestore SDK for Java: データの書き込み
Tablestore SDK for Go: 単一行のデータの書き込み
Tablestore SDK for Python: 単一行のデータの書き込み
Tablestore SDK for Node.js: 単一行のデータの書き込み
Tablestore SDK for .NET: 単一行のデータの書き込み
Tablestore SDK for PHP: 単一行のデータの書き込み
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 が消費されます。