Konfigurasikan time to live (TTL) indeks pencarian menggunakan Tablestore SDK for Java. Tablestore secara otomatis menghapus data indeks setelah periode retensinya berakhir.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Tablestore SDK for Java versi 5.12.0 atau lebih baru terinstal dan klien telah diinisialisasi
-
Tabel yang sudah ada dengan maksimal satu versi data
Catatan penggunaan
-
Sebelum menggunakan manajemen siklus hidup indeks pencarian, nonaktifkan operasi
UpdateRowpada tabel untuk mencegah inkonsistensi data antara tabel dan indeks pencarian.TTL tabel berlaku untuk kolom atribut individual, sedangkan TTL indeks pencarian berlaku untuk seluruh baris. Dengan operasi
UpdateRow, pembersihan TTL mungkin hanya menghapus beberapa kolom tabel, sementara seluruh baris tetap tersimpan di indeks pencarian.Untuk memperbarui data, gunakan
PutRowagar seluruh baris ditimpa. -
TTL indeks pencarian diukur dalam detik dan menerima nilai
-1atau bilangan bulat positif 32-bit. Nilai-1menyimpan data secara permanen, sedangkan nilai positif maksimum merepresentasikan periode retensi sekitar 68 tahun. -
TTL indeks pencarian dan TTL tabel dikonfigurasi secara independen, tetapi TTL indeks pencarian harus kurang dari atau sama dengan TTL tabel. Jika TTL indeks pencarian yang dituju lebih besar daripada TTL tabel saat ini, tingkatkan TTL tabel terlebih dahulu. Jika Anda menurunkan kedua TTL tersebut, turunkan TTL indeks pencarian terlebih dahulu.
-
Tablestore menghapus data indeks pencarian yang kedaluwarsa sekali per hari. Hingga pembersihan berikutnya selesai, kueri mungkin masih mengembalikan data kedaluwarsa yang belum dihapus.
-
Setelah Anda memperbarui TTL tabel atau indeks pencarian, Tablestore akan menghapus data yang kedaluwarsa akibat perubahan tersebut selama siklus pembersihan berikutnya.
Prosedur
Manajemen siklus hidup mencakup menonaktifkan pembaruan UpdateRow untuk tabel, mengonfigurasi TTL indeks pencarian, dan—jika diperlukan—mengonfigurasi TTL tabel. Urutan operasi harus memastikan bahwa TTL indeks pencarian kurang dari atau sama dengan TTL tabel. Jika TTL indeks pencarian yang dituju lebih besar daripada TTL tabel saat ini, tingkatkan TTL tabel terlebih dahulu. Jika Anda menurunkan kedua TTL tersebut, turunkan TTL indeks pencarian terlebih dahulu.
-
Nonaktifkan pembaruan tabel dengan
UpdateRow.Contoh berikut menonaktifkan pembaruan
UpdateRowuntukexample_table.String tableName = "example_table"; UpdateTableRequest request = new UpdateTableRequest(tableName); TableOptions tableOptions = new TableOptions(); tableOptions.setAllowUpdate(false); request.setTableOptionsForUpdate(tableOptions); client.updateTable(request); -
Konfigurasikan TTL indeks pencarian.
Pilih opsi berdasarkan apakah indeks pencarian sudah ada atau belum.
Indeks baru
Tetapkan TTL tujuh hari saat membuat indeks pencarian.
String tableName = "example_table"; String indexName = "example_index"; IndexSchema indexSchema = new IndexSchema(); indexSchema.setFieldSchemas(Arrays.asList( new FieldSchema("category", FieldType.KEYWORD), new FieldSchema("price", FieldType.LONG))); CreateSearchIndexRequest request = new CreateSearchIndexRequest(); request.setTableName(tableName); request.setIndexName(indexName); request.setIndexSchema(indexSchema); request.setTimeToLiveInDays(7); client.createSearchIndex(request);Indeks yang sudah ada
Perbarui TTL indeks pencarian yang sudah ada menjadi tujuh hari.
String tableName = "example_table"; String indexName = "example_index"; UpdateSearchIndexRequest request = new UpdateSearchIndexRequest(tableName, indexName); request.setTimeToLiveInDays(7); client.updateSearchIndex(request); -
Konfigurasikan TTL tabel jika diperlukan.
Contoh berikut menetapkan TTL
example_tablemenjadi tujuh hari. Jalankan operasi ini sebelum atau sesudah mengonfigurasi TTL indeks pencarian, sesuai dengan batasan TTL yang dijelaskan di atas.String tableName = "example_table"; UpdateTableRequest request = new UpdateTableRequest(tableName); TableOptions tableOptions = new TableOptions(); tableOptions.setTimeToLiveInDays(7); request.setTableOptionsForUpdate(tableOptions); client.updateTable(request);
Setelah konfigurasi, lakukan kueri informasi tabel dan informasi indeks pencarian untuk memverifikasi kedua TTL tersebut.