Tablestore memungkinkan Anda menulis satu baris data, memperbarui satu baris data, dan menulis beberapa baris data sekaligus melalui operasi yang berbeda. Untuk menulis data ke tabel, Anda harus menentukan informasi kunci utama lengkap serta kolom atribut yang ingin ditambahkan, dihapus, atau diperbarui. Saat menulis data dalam aplikasi dengan konkurensi tinggi, Anda dapat mengonfigurasi kondisi keberadaan baris atau kondisi berbasis kolom untuk memperbarui data berdasarkan kondisi tertentu.
Prasyarat
Instance OTSClient telah diinisialisasi. Untuk detail lebih lanjut, lihat Inisialisasi Instance OTSClient.
Tabel data telah dibuat dan data telah ditulis ke tabel tersebut. Untuk detail lebih lanjut, lihat Buat Tabel Data dan Tulis Data.
Tulis satu baris data
Operasi API
/**
* Masukkan data ke baris tertentu. Jika baris sudah ada, data yang ada akan ditimpa. Jika tidak, baris baru akan ditambahkan.
*/
putRow(params, callback)Parameter
Parameter | Deskripsi |
tableName | Nama tabel data. |
primaryKey | Informasi kunci utama tentang baris tersebut. Informasi kunci utama mencakup nama, tipe, dan nilai kolom kunci utama. Penting
|
condition | Kondisi yang harus dipenuhi untuk melakukan operasi. Anda dapat menentukan kondisi keberadaan baris atau kondisi berbasis nilai kolom. Untuk informasi lebih lanjut, lihat Konfigurasikan pembaruan bersyarat. Catatan
|
attributeColumns | Kolom atribut dari baris tersebut. Setiap kolom atribut ditentukan oleh parameter dalam urutan berikut: nama kolom atribut, tipe kolom atribut (opsional), nilai kolom atribut, dan timestamp (opsional).
|
returnContent | Tipe pengembalian. returnType: Anda dapat menetapkan parameter returnType ke TableStore.ReturnType.Primarykey untuk mengembalikan kunci utama baris. Parameter ini digunakan oleh fitur kolom kunci utama auto-increment. |
Contoh
Berikut adalah contoh kode untuk menulis satu baris data:
var TableStore = require('../index.js');
var Long = TableStore.Long;
var client = require('./client');
var currentTimeStamp = Date.now();
var params = {
tableName: "sampleTable",
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [{ 'gid': Long.fromNumber(20013) }, { 'uid': Long.fromNumber(20013) }],
attributeColumns: [
{ 'col1': 'Tablestore' },
{ 'col2': '2', 'timestamp': currentTimeStamp },
{ 'col3': 3.1 },
{ 'col4': -0.32 },
{ 'col5': Long.fromNumber(123456789) }
],
returnContent: { returnType: TableStore.ReturnType.Primarykey }
};
client.putRow(params, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', data);
});Untuk kode contoh terperinci, kunjungi PutRow@GitHub.
Perbarui satu baris data
Operasi API
/**
* Perbarui data baris yang ditentukan. Jika baris tidak ada, baris baru ditambahkan. Jika baris ada, nilai kolom yang ditentukan dari baris tersebut ditambahkan, diubah, atau dihapus berdasarkan konten permintaan.
*/
updateRow(params, callback)Parameter
Parameter | Deskripsi |
tableName | Nama tabel data. |
primaryKey | Informasi kunci utama tentang baris tersebut. Penting Jumlah dan tipe kolom kunci utama yang Anda tentukan harus sama dengan jumlah dan tipe kolom kunci utama aktual dalam tabel. |
condition | Kondisi yang harus dipenuhi untuk melakukan operasi. Anda dapat menentukan kondisi keberadaan baris atau kondisi berbasis nilai kolom. Untuk informasi lebih lanjut, lihat Konfigurasikan pembaruan bersyarat. |
updateOfAttributeColumns | Kolom atribut yang ingin Anda perbarui. |
Contoh
Berikut adalah contoh kode untuk memperbarui satu baris data:
var TableStore = require('../index.js');
var Long = TableStore.Long;
var client = require('./client');
var params = {
tableName: "sampleTable",
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [{ 'gid': Long.fromNumber(9) }, { 'uid': Long.fromNumber(90) }],
updateOfAttributeColumns: [
{ 'PUT': [{ 'col4': Long.fromNumber(4) }, { 'col5': '5' }, { 'col6': Long.fromNumber(6) }] },
{ 'DELETE': [{ 'col1': Long.fromNumber(1496826473186) }] },
{ 'DELETE_ALL': ['col2'] }
]
};
client.updateRow(params,
function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', data);
}); Untuk kode contoh terperinci, kunjungi UpdateRow@GitHub.
Tulis beberapa baris data sekaligus
Catatan penggunaan
Ketika menggunakan operasi BatchWriteRow untuk menulis beberapa baris data sekaligus, beberapa baris mungkin gagal ditulis. Dalam hal ini, Tablestore tidak mengembalikan pengecualian. Sebagai gantinya, Tablestore mengembalikan BatchWriteRowResponse yang mencakup indeks dan pesan kesalahan dari baris yang gagal. Oleh karena itu, pastikan untuk memeriksa nilai pengembalian untuk menentukan apakah semua baris berhasil ditulis. Jika tidak, baris yang gagal mungkin diabaikan.
Anda dapat menggunakan operasi BatchWriteRow untuk menulis hingga 4 MB data dalam maksimal 200 baris sekaligus.
Operasi API
/**
// Tambahkan, hapus, atau perbarui beberapa baris data di beberapa tabel.
*/
batchWriteRow(params, callback)Parameter
Operasi BatchWriteRow terdiri dari beberapa operasi PutRow, UpdateRow, dan DeleteRow.
Hierarki dibuat untuk tabel. Beberapa tabel dapat diproses sekaligus.
Anda dapat mengonfigurasi parameter tables untuk menentukan informasi tentang tabel dan baris tempat Anda ingin melakukan operasi tulis, pembaruan, atau penghapusan.
Parameter type ditambahkan untuk membedakan antara tipe operasi yang berbeda.
Anda dapat menetapkan tipe operasi ke PUT, UPDATE, atau DELETE.
Jika Anda menetapkan tipe operasi ke PUT atau UPDATE, primaryKey dan attributeColumns valid.
Jika Anda menetapkan tipe operasi ke DELETE, primaryKey valid.
Contoh
Berikut adalah contoh kode untuk menulis beberapa baris data sekaligus:
var client = require('./client');
var TableStore = require('../index.js');
var Long = TableStore.Long;
var params = {
tables: [
{
tableName: 'sampleTable',
rows: [
{
type: 'UPDATE',
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [{ 'gid': Long.fromNumber(20010) }, { 'uid': Long.fromNumber(20010) }],
attributeColumns: [{ 'PUT': [{ 'col1': 'test3' }, { 'col2': 'test4' }] }],
returnContent: { returnType: 1 }
},
{
type: 'PUT',
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [{ 'gid': Long.fromNumber(20020) }, { 'uid': Long.fromNumber(20020) }],
attributeColumns: [{ 'col1': 'test1' }, { 'col2': 'test2' }],
returnContent: { returnType: TableStore.ReturnType.Primarykey }
},
{
type: 'DELETE',
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [{ 'gid': Long.fromNumber(20018) }, { 'uid': Long.fromNumber(20018) }],
}
]
}
],
};
client.batchWriteRow(params, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', data);
}); Untuk kode contoh terperinci, kunjungi BatchWriteRow@GitHub.
FAQ
Referensi
Untuk memperbarui data dalam aplikasi dengan konkurensi tinggi berdasarkan kondisi tertentu, Anda dapat menggunakan fitur pembaruan bersyarat. Untuk informasi lebih lanjut, lihat Konfigurasikan Pembaruan Bersyarat.
Untuk mengumpulkan statistik waktu nyata tentang aplikasi online, seperti jumlah tampilan halaman (PV) pada berbagai topik, Anda dapat menggunakan fitur penghitung atomik. Untuk informasi lebih lanjut, lihat Gunakan Fitur Penghitung Atomik.
Untuk melakukan operasi atomik untuk menulis satu atau beberapa baris data, Anda dapat menggunakan fitur transaksi lokal. Untuk informasi lebih lanjut, lihat Konfigurasikan Transaksi Lokal.
Setelah menulis data ke tabel, Anda dapat membaca atau menghapus data sesuai kebutuhan bisnis. Untuk informasi lebih lanjut, lihat Baca Data dan Hapus Data.