Catatan Baris adalah unit dasar dalam tabel. Setiap baris terdiri dari kolom kunci utama dan kolom atribut opsional. Kunci utama diperlukan dan memiliki nama serta tipe yang sama untuk setiap baris, sementara kolom atribut dapat berbeda antarbaris. Untuk informasi lebih lanjut, lihat Ikhtisar.
Catatan Penggunaan
Saat menghapus data, jumlah dan jenis kolom kunci utama yang Anda tentukan harus sesuai dengan jumlah dan jenis kolom kunci utama aktual di tabel.
Data yang telah dihapus tidak dapat dipulihkan. Harap berhati-hati saat melanjutkan.
Hapus satu baris data
Gunakan operasi DeleteRow untuk menghapus satu baris data. Jika baris yang ingin dihapus tidak ada, tabel tetap tidak berubah.
Anda dapat menggunakan fitur pembaruan bersyarat untuk menghapus data dari baris yang memenuhi kondisi tertentu. Untuk informasi lebih lanjut, lihat Pembaruan Bersyarat.
Hapus beberapa baris data sekaligus
Setelah mendapatkan informasi kunci utama dari data yang ingin dihapus, gunakan operasi BatchWriteRow untuk menghapus beberapa baris data sekaligus.
Catatan Untuk menghapus data yang ditulis sebelum waktu tertentu, gunakan fitur time to live (TTL). Untuk informasi lebih lanjut, lihat TTL.
Berikut adalah konfigurasi yang dapat Anda terapkan saat menghapus beberapa baris data sekaligus:
Anda dapat menghapus data dari beberapa tabel dalam satu permintaan.
Gunakan fitur pembaruan bersyarat untuk menghapus data dari baris yang memenuhi kondisi tertentu. Untuk informasi lebih lanjut, lihat Pembaruan Bersyarat.
Metode Penggunaan
Gunakan Konsol Tablestore
Anda dapat menghapus satu atau beberapa baris data sekaligus di Konsol Tablestore.
Masuk ke Konsol Tablestore.
Di halaman Overview, temukan instance yang ingin dikelola dan klik Manage Instance di kolom Actions.
Di tab Tables pada tab Instance Details, klik nama tabel yang ingin dikelola.
Di tab Query Data pada halaman Kelola Tabel, pilih satu atau lebih baris yang ingin dihapus dan klik Delete di bagian bawah halaman.
Di pesan Delete, klik OK.
Gunakan CLI Tablestore
Gunakan perintah delete untuk menghapus baris data di CLI Tablestore.
Contoh kode berikut menunjukkan cara menghapus data dari baris dengan nilai kolom kunci utama pertama 86 dan nilai kolom kunci utama kedua 6771:
delete --pk '["86", 6771]'
Gunakan SDK Tablestore
Anda dapat menggunakan SDK Tablestore untuk Java, SDK Tablestore untuk Go, SDK Tablestore untuk Python, SDK Tablestore untuk Node.js, SDK Tablestore untuk .NET, atau SDK Tablestore untuk PHP. Contoh ini menggunakan SDK Tablestore untuk Java.
Hapus satu baris data
Menghapus baris data
Contoh kode berikut menunjukkan cara menghapus baris data dari tabel:
private static void deleteRow(SyncClient client, String pkValue) {
// Konstruksi kunci utama.
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
PrimaryKey primaryKey = primaryKeyBuilder.build();
// Tentukan nama tabel data.
RowDeleteChange rowDeleteChange = new RowDeleteChange("<TABLE_NAME>", primaryKey);
client.deleteRow(new DeleteRowRequest(rowDeleteChange));
}
Menentukan kondisi saat menghapus data
Contoh kode berikut menunjukkan cara menghapus baris data jika baris tersebut ada dan nilai kolom Col0 lebih besar dari 100:
private static void deleteRow(SyncClient client, String pkValue) {
// Konstruksi kunci utama.
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
PrimaryKey primaryKey = primaryKeyBuilder.build();
// Tentukan nama tabel data.
RowDeleteChange rowDeleteChange = new RowDeleteChange("<TABLE_NAME>", primaryKey);
// Tentukan kondisi untuk operasi DeleteRow. Dalam contoh ini, baris hanya dihapus jika baris tersebut ada dan nilai kolom Col0 lebih besar dari 100.
Condition condition = new Condition(RowExistenceExpectation.EXPECT_EXIST);
condition.setColumnCondition(new SingleColumnValueCondition("Col0",
SingleColumnValueCondition.CompareOperator.GREATER_THAN, ColumnValue.fromLong(100)));
rowDeleteChange.setCondition(condition);
client.deleteRow(new DeleteRowRequest(rowDeleteChange));
}
Hapus beberapa baris data sekaligus
Sebelum menghapus data, pilih metode yang sesuai untuk mendapatkan informasi kunci utama dari data yang ingin dihapus berdasarkan kebutuhan bisnis Anda.
Untuk menghapus data dengan nilai kunci utama dalam rentang tertentu, gunakan operasi GetRange untuk mendapatkan informasi kunci utama. Untuk informasi lebih lanjut, lihat Baca Data.
Untuk menghapus data yang memenuhi kondisi tertentu, gunakan indeks pencarian untuk mendapatkan informasi kunci utama. Untuk informasi lebih lanjut, lihat Buat Indeks Pencarian dan Gunakan SDK Tablestore.
Setelah mendapatkan informasi kunci utama, gunakan operasi BatchWriteRow untuk menghapus beberapa baris data sekaligus. Untuk informasi lebih lanjut, lihat bagian Tulis beberapa baris data sekaligus dari topik "Tulis Data".
Contoh kode berikut menunjukkan cara menghapus baris data dengan nilai kolom kunci utama pk pk dari satu tabel dan baris data dengan nilai kolom kunci utama pk1 pk1 dan pk2 pk2 dari tabel lain secara bersamaan:
private static void batchWriteRow(SyncClient client) {
BatchWriteRowRequest batchWriteRowRequest = new BatchWriteRowRequest();
// Konstruksi rowDeleteChange1.
PrimaryKeyBuilder pk1Builder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
pk1Builder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString("pk"));
// Tentukan nama tabel data.
RowDeleteChange rowDeleteChange1 = new RowDeleteChange("<TABLE_NAME1>", pk1Builder.build());
// Tambahkan rowDeleteChange1 ke kode operasi batch.
batchWriteRowRequest.addRowChange(rowDeleteChange1);
// Konstruksi rowDeleteChange2.
PrimaryKeyBuilder pk2Builder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
pk2Builder.addPrimaryKeyColumn("pk1", PrimaryKeyValue.fromString("pk1"));
pk2Builder.addPrimaryKeyColumn("pk2", PrimaryKeyValue.fromString("pk2"));
// Tentukan nama tabel data.
RowDeleteChange rowDeleteChange2 = new RowDeleteChange("<TABLE_NAME2>", pk2Builder.build());
// Tambahkan rowDeleteChange2 ke kode operasi batch.
batchWriteRowRequest.addRowChange(rowDeleteChange2);
BatchWriteRowResponse response = client.batchWriteRow(batchWriteRowRequest);
System.out.println("Apakah semua operasi berhasil:" + response.isAllSucceed());
if (!response.isAllSucceed()) {
for (BatchWriteRowResponse.RowResult rowResult : response.getFailedRows()) {
System.out.println("Baris gagal:" + batchWriteRowRequest.getRowChange(rowResult.getTableName(), rowResult.getIndex()).getPrimaryKey());
System.out.println("Penyebab kegagalan:" + rowResult.getError());
}
/**
* Anda dapat menggunakan metode createRequestForRetry untuk membuat permintaan lain untuk mencoba kembali operasi pada baris yang gagal. Dalam contoh ini, hanya permintaan ulang yang dibuat.
* Kami merekomendasikan agar Anda menggunakan kebijakan ulang kustom di SDK Tablestore sebagai metode ulang. Fitur ini memungkinkan Anda mencoba kembali baris yang gagal setelah operasi batch dilakukan. Setelah Anda menentukan kebijakan ulang, Anda tidak perlu menambahkan kode ulang untuk memanggil operasi.
*/
BatchWriteRowRequest retryRequest = batchWriteRowRequest.createRequestForRetry(response.getFailedRows());
}
}
Tagihan
Biaya dihitung berdasarkan jumlah unit kapasitas (CU) yang dikonsumsi oleh suatu operasi. CU yang dikonsumsi mencakup CU baca/tulis on-demand dan CU baca/tulis cadangan, tergantung pada tipe instans.
Jumlah CU baca dan tulis yang dikonsumsi oleh operasi DeleteRow dihitung berdasarkan aturan berikut:
Jumlah CU tulis yang dikonsumsi dibulatkan ke atas dari hasil rumus berikut: Jumlah CU tulis = Ukuran data di semua kolom kunci utama baris / 4 KB.
Jika nilai parameter kondisi bukan IGNORE, jumlah CU baca yang dikonsumsi dibulatkan ke atas dari hasil rumus berikut: Jumlah CU baca = Ukuran data di semua kolom kunci utama baris / 4 KB.
Jika kondisi keberadaan baris tidak terpenuhi, operasi gagal dan satu CU tulis dikonsumsi.