Tablestore memungkinkan Anda menulis satu baris data, memperbarui satu baris data, dan menulis beberapa baris data sekaligus dengan memanggil operasi yang berbeda. Untuk menulis data ke tabel, Anda harus menentukan informasi kunci utama lengkap dan kolom atribut yang ingin ditambahkan, dihapus, atau diubah. Untuk aplikasi dengan konkurensi tinggi, Anda dapat mengonfigurasi kondisi keberadaan baris atau kondisi kolom guna memperbarui data berdasarkan kondisi tertentu.
Prasyarat
Instansi OTSClient telah diinisialisasi. Untuk detail lebih lanjut, lihat Inisialisasi Instansi OTSClient.
Tabel data telah dibuat, dan data siap ditulis ke tabel tersebut.
Tulis satu baris data
Operasi API
// @param PutRowRequest Enkapsulasi parameter yang diperlukan untuk memanggil operasi PutRow.
// @return PutRowResponse
PutRow(request *PutRowRequest) (*PutRowResponse, error) Parameter
Parameter | Deskripsi |
NamaTabel | Nama tabel data. |
KunciUtama | Informasi kunci utama tentang baris tersebut. Informasi kunci utama mencakup nama, tipe, dan nilai kolom kunci utama. Penting
|
Kolom | Kolom atribut dari baris tersebut. Kolom atribut ditentukan oleh parameter dalam urutan berikut: nama kolom atribut, nilai kolom atribut (ColumnValue), tipe kolom atribut (ColumnType), dan timestamp. Tipe kolom atribut dan timestamp bersifat opsional.
|
Kondisi | Kondisi yang dapat Anda konfigurasikan untuk memanggil operasi PutRow. Anda dapat mengonfigurasi kondisi keberadaan baris atau kondisi berdasarkan nilai kolom. Untuk informasi lebih lanjut, lihat Konfigurasikan pembaruan bersyarat. |
Contoh
Berikut adalah contoh kode untuk menulis satu baris data:
putRowRequest := new(tablestore.PutRowRequest)
putRowChange := new(tablestore.PutRowChange)
putRowChange.TableName = tableName
putPk := new(tablestore.PrimaryKey)
putPk.AddPrimaryKeyColumn("pk1", "pk1value1")
putPk.AddPrimaryKeyColumn("pk2", int64(2))
putPk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
putRowChange.PrimaryKey = putPk
putRowChange.AddColumn("col1", "col1data1")
putRowChange.AddColumn("col2", int64(3))
putRowChange.AddColumn("col3", []byte("test"))
putRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
putRowRequest.PutRowChange = putRowChange
_, err := client.PutRow(putRowRequest)
if err != nil {
fmt.Println("putrow gagal dengan kesalahan:", err)
} else {
fmt.Println("putrow selesai")
} Untuk melihat contoh kode lengkap, kunjungi PutRow@GitHub.
Perbarui satu baris data
Operasi API
// Perbarui satu baris data dalam tabel.
// @param UpdateRowRequest Enkapsulasi parameter yang diperlukan untuk memanggil operasi UpdateRow.
// @return UpdateRowResponse Isi respons terhadap operasi UpdateRow.
UpdateRow(request *UpdateRowRequest) (*UpdateRowResponse, error) Parameter
Parameter | Deskripsi |
NamaTabel | Nama tabel data. |
KunciUtama | Informasi kunci utama tentang baris tersebut. Informasi kunci utama mencakup nama, tipe, dan nilai kolom kunci utama. Penting Jumlah dan tipe kolom kunci utama yang Anda tentukan harus sama dengan jumlah dan tipe kolom kunci utama aktual dalam tabel. |
Kolom | Kolom atribut dari baris tersebut. |
Kondisi | Kondisi yang dapat Anda konfigurasikan untuk memanggil operasi UpdateRow. Anda dapat mengonfigurasi kondisi keberadaan baris atau kondisi berdasarkan nilai kolom. Untuk informasi lebih lanjut, lihat Konfigurasikan pembaruan bersyarat. |
Contoh
Berikut adalah contoh kode untuk memperbarui satu baris data:
updateRowRequest := new(tablestore.UpdateRowRequest)
updateRowChange := new(tablestore.UpdateRowChange)
updateRowChange.TableName = tableName
updatePk := new(tablestore.PrimaryKey)
updatePk.AddPrimaryKeyColumn("pk1", "pk1value1")
updatePk.AddPrimaryKeyColumn("pk2", int64(2))
updatePk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
updateRowChange.PrimaryKey = updatePk
updateRowChange.DeleteColumn("col1")
updateRowChange.PutColumn("col2", int64(77))
updateRowChange.PutColumn("col4", "newcol3")
updateRowChange.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
updateRowRequest.UpdateRowChange = updateRowChange
_, err := client.UpdateRow(updateRowRequest)
if err != nil {
fmt.Println("pembaruan gagal dengan kesalahan:", err)
} else {
fmt.Println("pembaruan baris selesai")
} Untuk melihat contoh kode lengkap, kunjungi UpdateRow@GitHub.
Tulis beberapa baris data sekaligus
Catatan penggunaan
Saat memanggil operasi BatchWriteRow untuk menulis beberapa baris data sekaligus, beberapa baris mungkin gagal ditulis. Dalam situasi ini, Tablestore tidak mengembalikan pengecualian, melainkan mengembalikan BatchWriteRowResponse yang mencakup indeks dan pesan kesalahan dari baris yang gagal. Oleh karena itu, saat memanggil operasi BatchWriteRow, pastikan untuk memeriksa nilai kembali guna menentukan apakah semua baris berhasil ditulis. Jika nilai kembali tidak diperiksa, baris yang gagal ditulis mungkin terabaikan.
Anda dapat memanggil operasi BatchWriteRow untuk menulis hingga 4 MB data dalam maksimal 200 baris sekaligus.
Operasi API
// Tambahkan, hapus, atau perbarui beberapa baris data dalam beberapa tabel.
// @param BatchWriteRowRequest Enkapsulasi parameter yang diperlukan untuk memanggil operasi BatchWriteRow.
// @return BatchWriteRowResponse Isi respons terhadap operasi BatchWriteRow.
BatchWriteRow(request *BatchWriteRowRequest) (*BatchWriteRowResponse,error) Contoh
Berikut adalah contoh kode untuk menulis 100 baris data sekaligus:
batchWriteReq := &tablestore.BatchWriteRowRequest{}
for i := 0; i < 100; i++ {
putRowChange := new(tablestore.PutRowChange)
putRowChange.TableName = tableName
putPk := new(tablestore.PrimaryKey)
putPk.AddPrimaryKeyColumn("pk1", "pk1value1")
putPk.AddPrimaryKeyColumn("pk2", int64(i))
putPk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
putRowChange.PrimaryKey = putPk
putRowChange.AddColumn("col1", "fixvalue")
putRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
batchWriteReq.AddRowChange(putRowChange)
}
response, err := client.BatchWriteRow(batchWriteReq)
if err != nil {
fmt.Println("permintaan batch gagal dengan:", response)
} else {
fmt.Println("penulisan baris batch selesai")
} Untuk melihat contoh kode lengkap, 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 real-time tentang aplikasi online, seperti jumlah tampilan halaman (PV) pada berbagai topik, Anda dapat menggunakan fitur penghitung atomik. Untuk informasi lebih lanjut, lihat Konfigurasikan Penghitung Atomik.
Untuk melakukan operasi atomik untuk menulis satu atau lebih baris data, Anda dapat menggunakan fitur transaksi lokal. Untuk informasi lebih lanjut, lihat Konfigurasikan Transaksi Lokal.
Setelah data ditulis ke tabel, Anda dapat membaca atau menghapus data sesuai kebutuhan bisnis. Untuk informasi lebih lanjut, lihat Baca Data dan Hapus Data.