All Products
Search
Document Center

Tablestore:Menulis data secara batch

Last Updated:May 12, 2026

Topik ini menjelaskan cara menggunakan Tablestore .NET SDK untuk melakukan operasi batch write di Tablestore. Batch write memungkinkan Anda menulis, memperbarui, dan menghapus data dari beberapa tabel dalam satu permintaan.

Usage notes

  • Jika server mendeteksi kesalahan parameter pada salah satu operasi individual, server akan melemparkan exception. Seluruh permintaan batch gagal, dan tidak ada operasi yang dieksekusi.

  • Satu operasi batch write mendukung maksimal 200 baris. Ukuran total data dari semua baris tidak boleh melebihi 4 MB.

Prerequisites

Initialize the Tablestore client

Method

public BatchWriteRowResponse BatchWriteRow(BatchWriteRowRequest request)

Metode asinkron:

public Task<BatchWriteRowResponse> BatchWriteRowAsync(BatchWriteRowRequest request)

Parameter BatchWriteRowRequest

  • RowChangesGroupByTable (Required)IDictionary<string, RowChanges>: Daftar operasi data baris yang mencakup parameter berikut.

    Parameter

    Type

    Description

    tableName (Required)

    string

    Nama tabel.

    rowChanges (Required)

    RowChanges

    Operasi data yang akan dilakukan, termasuk menulis, memperbarui, dan menghapus data.

Code examples

Kode berikut menunjukkan cara menggunakan operasi batch write untuk menyisipkan satu baris ke dalam tabel test_table.

try
{
    // Membuat permintaan.
    BatchWriteRowRequest batchWriteRowRequest = new BatchWriteRowRequest();

    // Menambahkan RowChanges.
    RowChanges rowChanges = new RowChanges("test_table");
    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };
    // Kondisi untuk operasi write wajib ditentukan. `RowExistenceExpectation.IGNORE` berarti pengecekan keberadaan baris dilewati.
    Condition condition = new Condition(RowExistenceExpectation.IGNORE);
    rowChanges.AddPut(condition, primaryKey, null);
    batchWriteRowRequest.Add("test_table", rowChanges);

    // Memanggil metode BatchWriteRow untuk menjalankan operasi batch write.
    BatchWriteRowResponse batchWriteRowResponse = client.BatchWriteRow(batchWriteRowRequest);

    // Memproses respons.
    Console.WriteLine($"RequestId: {batchWriteRowResponse.RequestID}");
    if (!batchWriteRowResponse.IsAllSucceed)
    {
        foreach (var item in batchWriteRowResponse.GetFailedRows())
        {
            Console.WriteLine($"Nama tabel: {item.TableName}. Pesan error: {item.ErrorMessage}");
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Batch write row gagal, exception: {ex.Message}");
}

Kode berikut menunjukkan contoh berbagai jenis operasi data.

  • RowPutChange: Menulis satu baris.

    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };
    // Kondisi untuk operasi write wajib ditentukan. `RowExistenceExpectation.IGNORE` berarti pengecekan keberadaan baris dilewati.
    Condition condition = new Condition(RowExistenceExpectation.IGNORE);
    rowChanges.AddPut(condition, primaryKey, null);

    Anda juga dapat menambahkan kolom atribut saat menulis baris.

    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };
    AttributeColumns columns = new AttributeColumns
    {
        { "col1", new ColumnValue("val1") }
    };
    // Kondisi untuk operasi write wajib ditentukan. `RowExistenceExpectation.IGNORE` berarti pengecekan keberadaan baris dilewati.
    Condition condition = new Condition(RowExistenceExpectation.IGNORE);
    rowChanges.AddPut(condition, primaryKey, columns);
  • RowUpdateChange: Memperbarui satu baris. Anda dapat mengubah nilai kolom atribut, menambahkan kolom atribut, atau menghapus versi tertentu dari kolom atribut maupun seluruh kolom atribut tersebut.

    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };
    UpdateOfAttribute updateOfAttribute = new UpdateOfAttribute();
    updateOfAttribute.AddAttributeColumnToPut("col1", new ColumnValue("changed_val1"));
    // Kondisi untuk operasi update wajib ditentukan. `RowExistenceExpectation.IGNORE` berarti pengecekan keberadaan baris dilewati.
    Condition condition = new Condition(RowExistenceExpectation.IGNORE);
    rowChanges.AddUpdate(condition, primaryKey, updateOfAttribute);

    Anda juga dapat menambahkan atau menghapus kolom atribut saat memperbarui baris.

    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };
    UpdateOfAttribute updateOfAttribute = new UpdateOfAttribute();
    // Menambahkan kolom atribut.
    updateOfAttribute.AddAttributeColumnToPut("col3", new ColumnValue("val3"));
    // Menghapus kolom atribut.
    updateOfAttribute.AddAttributeColumnToDelete("col2");
    // Kondisi untuk operasi update wajib ditentukan. `RowExistenceExpectation.IGNORE` berarti pengecekan keberadaan baris dilewati.
    Condition condition = new Condition(RowExistenceExpectation.IGNORE);
    rowChanges.AddUpdate(condition, primaryKey, updateOfAttribute);
  • RowDeleteChange: Menghapus satu baris.

    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };
    // Kondisi untuk operasi delete wajib ditentukan. `RowExistenceExpectation.IGNORE` berarti pengecekan keberadaan baris dilewati.
    Condition condition = new Condition(RowExistenceExpectation.IGNORE);
    rowChanges.AddDelete(condition, primaryKey);

References