Tüm Ürünler
Search
Belge Merkezi

Tablestore:BatchWriteRow

Son Güncelleme:Oct 02, 2026

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

TableInBatchWriteRowRequest

Evet

Toplu yazma işleminin uygulanacağı satırlar.

Aşağıdaki koşullardan herhangi biri mevcut olduğunda istek başarısız olur:

  • Belirtilen bir tablo mevcut değil.

  • Aynı ada sahip birden çok tablo belirtilmiş.

  • Bir tablo adı adlandırma kurallarına uymuyor. Daha fazla bilgi için bkz. Adlandırma kuralları ve veri türleri.

  • Bir satırın birincil anahtarı eksik veya birincil anahtar sütununun adı kural dışı ya da türü geçersiz.

  • Bir satırdaki öznitelik sütunu adı adlandırma kurallarına uymuyor. Daha fazla bilgi için bkz. Adlandırma kuralları ve veri türleri.

  • Bir satırdaki öznitelik sütunu adı, birincil anahtar sütunu adıyla çakışıyor.

  • Birincil anahtar sütunu değeri veya öznitelik sütunu değeri boyut sınırını aşıyor. Daha fazla bilgi için bkz. Genel sınırlar.

  • Bir tablodaki birden çok satır aynı birincil anahtarı paylaşıyor.

  • Toplam satır sayısı 200'ü aşıyor veya toplam veri boyutu 4 MB'yi aşıyor.

  • Belirtilen tablo, işlem uygulamak istediğiniz satırları içermiyor. Bu durumda OTSParameterInvalidException hatası döndürülür.

  • Bir tablo için PutRowInBatchWriteRowRequest içindeki sütun sayısı 1.024'ü aşıyor.

  • Bir tablo için UpdateRowInBatchWriteRowRequest içindeki ColumnUpdate parametresi tarafından belirtilen sütun sayısı 1.024'ü aşıyor.

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

Not

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

TableInBatchWriteRowResponse

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 is_ok değeri false olur.

Tablestore SDK'larını kullanma

Aşağıdaki Tablestore SDK'ları toplu yazma işlemlerini destekler:

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.