All Products
Search
Document Center

Tablestore:Lakukan operasi data batch

Last Updated:Apr 22, 2026

Tulis, perbarui, dan hapus baris dari beberapa tabel Tablestore dalam satu permintaan menggunakan metode batchWriteRow pada SDK Node.js.

Catatan

  • Jika server mendeteksi kesalahan parameter pada suatu operasi, pengecualian kesalahan parameter akan dikembalikan. Dalam kasus ini, tidak ada operasi dalam permintaan yang dieksekusi.

  • Satu operasi pembaruan batch mendukung maksimal 200 baris, dengan total volume data dari semua baris tidak melebihi 4 MB.

Prasyarat

Inisialisasi client Tablestore

Metode

batchWriteRow: function batchWriteRow(params, callback)

Deskripsi parameter params

  • tables (Wajib) Array: Array berisi operasi data baris dengan tipe data List[TableInBatchWriteRowItem]. Setiap item dalam array mencakup parameter berikut.

    Nama

    Tipe

    Deskripsi

    tableName (Wajib)

    string

    Nama tabel data.

    rows (Wajib)

    Array

    Jenis operasi data. Operasi mencakup menulis, memperbarui, dan menghapus data.

  • transactionId (Opsional) string: ID transaksi lokal yang secara unik mengidentifikasi suatu transaksi lokal. Untuk informasi selengkapnya, lihat transaksi lokal.

Contoh kode

Contoh kode berikut menunjukkan cara menggunakan metode operasi batch untuk menyisipkan satu baris ke dalam tabel test_table.

var table = {
    tableName: 'test_table',
    rows: [
        {
            type: 'PUT',
            // Kondisi untuk operasi tulis.
            // TableStore.RowExistenceExpectation.IGNORE menentukan bahwa baris ditulis tanpa mempertimbangkan apakah baris tersebut sudah ada atau belum.
            condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
            primaryKey: [{ 'id': 'row1' }]
        }
    ]
};
var params = {
    tables: [table]
};

// Panggil metode batchWriteRow untuk menjalankan operasi batch.
client.batchWriteRow(params, function (err, data) {
    if (err) {
        console.log('Batch write row gagal dengan error: %s', err);
        return;
    }

    // Proses respons.
    console.log('RequestId: %s', data.RequestId);
    data.tables.forEach(function (item) {
        if (!item.isOk) {
            console.log('Nama tabel: %s. Pesan error: %s', item.tableName, item.errorMessage);
        }
    });
});

Contoh kode berikut menunjukkan berbagai jenis operasi data.

  • PutRowChange: Menulis satu baris.

    var table = {
        tableName: 'test_table',
        rows: [
            {
                type: 'PUT',
                // Tentukan kondisi untuk operasi tulis. TableStore.RowExistenceExpectation.IGNORE menentukan untuk tidak memeriksa keberadaan baris.
                condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
                primaryKey: [{ 'id': 'row1' }]
            }
        ]
    };

    Tambahkan juga kolom atribut saat menulis baris.

    var table = {
        tableName: 'test_table',
        rows: [
            {
                type: 'PUT',
                // Tentukan kondisi untuk operasi tulis. TableStore.RowExistenceExpectation.IGNORE menentukan untuk tidak memeriksa keberadaan baris.
                condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
                primaryKey: [{ 'id': 'row1' }],
                attributeColumns: [
                    // Tambahkan kolom atribut.
                    { 'col1': 'val1' }, 
                    // Tambahkan kolom atribut dengan nomor versi data kustom.
                    { 'col2': 'val2', 'timestamp': Date.now() }
                ]
            }
        ]
    };
  • UpdateRowChange: Memperbarui satu baris. Anda dapat mengubah nilai kolom atribut, menambahkan kolom atribut, atau menghapus versi tertentu dari kolom atribut maupun seluruh kolom atribut.

    var table = {
        tableName: 'test_table',
        rows: [
            {
                type: 'UPDATE',
                // Tentukan kondisi untuk operasi pembaruan. TableStore.RowExistenceExpectation.IGNORE menentukan untuk tidak memeriksa keberadaan baris.
                condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
                primaryKey: [{ 'id': 'row1' }],
                attributeColumns: [{ 'PUT': [{ 'col1': 'changed_val1' }] }],
            }
        ]
    };

    Tambahkan atau hapus kolom atribut saat memperbarui baris.

    var table = {
        tableName: 'test_table',
        rows: [
            {
                type: 'UPDATE',
                // Tentukan kondisi untuk operasi pembaruan. TableStore.RowExistenceExpectation.IGNORE menentukan untuk tidak memeriksa keberadaan baris.
                condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
                primaryKey: [{ 'id': 'row1' }],
                attributeColumns: [
                    {
                        'PUT':
                            [
                                // Tambahkan kolom atribut.
                                { 'col3': 'val3' },
                                // Tambahkan kolom atribut dengan nomor versi data kustom.
                                { 'col4': 'val4', 'timestamp': Date.now() }
                            ]
                    },
                    {   // Hapus kolom atribut.
                        'DELETE_ALL':
                            ['col2']
                    }
                ],
            }
        ]
    };
  • DeleteRowChange: Menghapus satu baris.

    var table = {
        tableName: 'test_table',
        rows: [
            {
                type: 'DELETE',
                // Tentukan kondisi untuk operasi penghapusan. TableStore.RowExistenceExpectation.IGNORE menentukan untuk tidak memeriksa keberadaan baris.
                condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
                primaryKey: [{ 'id': 'row1' }]
            }
        ]
    };

Referensi