1 つ以上のテーブルから複数行のデータを同時に挿入、変更、または削除します。
BatchWriteRow は、PutRow、UpdateRow、および DeleteRow の呼び出しを単一のリクエストにバンドルする複合操作です。各サブ操作は個別に実行され、個別に課金されます。また、それぞれに独自の応答エントリが存在します。
PutRow、UpdateRow、または DeleteRow を個別に呼び出す場合と比較して、BatchWriteRow は往復遅延を低減し、書き込みスループットを向上させます。
リクエスト構文
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
optional string transaction_id = 2;
optional bool is_atomic = 3;
}
|
パラメーター |
型 |
必須 |
説明 |
|
tables |
はい |
バッチ書き込み操作を実行する行を指定します。 以下のいずれかの条件に該当する場合、リクエストは失敗します。
|
|
|
transaction_id |
string |
いいえ |
ローカルトランザクション ID です。ローカルトランザクション機能を使用してデータをバッチで書き込む場合に必要です。 |
|
is_atomic |
bool |
いいえ |
バッチ書き込みをアトミック操作として実行するかどうかを指定します。 |
応答構文
BatchWriteRow は、行レベルで部分的に失敗しても HTTP 200 を返すことがあります。各行の結果を確認し、適切に失敗を処理するには、各 RowInBatchWriteRowResponse エントリ内の is_ok をチェックしてください。
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
}
|
パラメーター |
型 |
説明 |
|
tables |
各テーブル内の各操作の結果(実行ステータス、エラーコード、消費された CU など)を示します。 TableInBatchWriteRowResponse エントリの順序は、リクエスト内の TableInBatchWriteRowRequest エントリの順序と一致します。各テーブル内では、put_rows、update_rows、delete_rows 内の RowInBatchWriteRowResponse エントリの順序が、対応する PutRowInBatchWriteRowRequest、UpdateRowInBatchWriteRowRequest、DeleteRowInBatchWriteRowRequest エントリの順序と一致します。 行操作が失敗した場合、その RowInBatchWriteRowResponse エントリ内の |
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: 複数行のデータをバッチで書き込む