Bir veya daha fazla tabloya aynı anda birden çok veri satırı ekler, değiştirir veya siler.
BatchWriteRow; PutRow, UpdateRow ve DeleteRow çağrılarını tek bir istekte birleştiren bileşik bir işlemdir. Her alt işlem bağımsız olarak çalıştırılır ve faturalandırılır; ayrıca her biri için ayrı bir yanıt girişi döndürülür.
PutRow, UpdateRow veya DeleteRow işlemlerini ayrı ayrı çağırmakla karşılaştırıldığında BatchWriteRow gidiş-dönüş gecikme süresini azaltır ve yazma aktarım hızını artırır.
İstek sözdizimi
message BatchWriteRowRequest {
repeated TableInBatchWriteRowRequest tables = 1;
optional string transaction_id = 2;
optional bool is_atomic = 3;
}
|
Parametre |
Tür |
Gerekli |
Açıklama |
|
tables |
Evet |
Toplu yazma işleminin uygulanacağı satırlar. Aşağıdaki koşullardan herhangi biri mevcut olduğunda istek başarısız olur:
|
|
|
transaction_id |
string |
Hayır |
Yerel işlem kimliği. Verileri toplu olarak yazmak için yerel işlem özelliğini kullanırken gereklidir. |
|
is_atomic |
bool |
Hayır |
Toplu yazma işleminin atomik olarak mı yürütüleceğini belirtir. |
Yanıt sözdizimi
BatchWriteRow, satır düzeyinde kısmen başarısız olabilir ancak yine de HTTP 200 döndürür. Her satır için sonucu onaylamak ve hataları buna göre işlemek amacıyla her RowInBatchWriteRowResponse girişindeki is_ok değerini kontrol edin.
message BatchWriteRowResponse {
repeated TableInBatchWriteRowResponse tables = 1;
}
|
Parametre |
Tür |
Açıklama |
|
tables |
Her tablodaki her işlem için sonuç; yürütme durumu, hata kodları ve tüketilen CU'lar dahil. TableInBatchWriteRowResponse girişlerinin sırası, istekteki TableInBatchWriteRowRequest girişlerinin sırasıyla eşleşir. Her tablo içinde put_rows, update_rows ve delete_rows içerisindeki RowInBatchWriteRowResponse girişlerinin sırası; ilgili PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest ve DeleteRowInBatchWriteRowRequest girişlerinin sırasıyla eşleşir. Bir satır işlemi başarısız olursa, ilgili RowInBatchWriteRowResponse girişindeki |
Tablestore SDK'larını kullanma
Aşağıdaki Tablestore SDK'ları toplu yazma işlemlerini destekler:
Tablestore SDK for Java: Verilerin birden çok satırını toplu olarak yazma
Tablestore SDK for Go: Verilerin birden çok satırını toplu olarak yazma
Tablestore SDK for Python: Verilerin birden çok satırını toplu olarak yazma
Tablestore SDK for Node.js: Verilerin birden çok satırını toplu olarak yazma
Tablestore SDK for .NET: Verilerin birden çok satırını toplu olarak yazma
Tablestore SDK for PHP: Verilerin birden çok satırını toplu olarak yazma
CU tüketimi
İşlem başarısız olursa hiçbir CU tüketilmez.
İstek zaman aşımına uğrar ve sonuçlar belirsiz kalırsa CU'lar tüketilebilir veya tüketilmeyebilir.
Diğer senaryolarda her PutRowInBatchWriteRowRequest, UpdateRowInBatchWriteRowRequest veya DeleteRowInBatchWriteRowRequest; bağımsız bir PutRow, UpdateRow veya DeleteRow işlemi olarak ele alınır ve CU'lar ayrı ayrı hesaplanır. Daha fazla bilgi için bkz. PutRow, UpdateRow ve DeleteRow.