Gunakan Tablestore SDK untuk Python untuk mengonfigurasi time to live (TTL) indeks pencarian. Tablestore secara otomatis menghapus data indeks setelah periode retensinya berakhir.
Prasyarat
Instal Tablestore SDK untuk Python dan inisialisasi klien.
Tabel sudah ada dan jumlah maksimum versi datanya diatur ke
1.
Catatan penggunaan
Sebelum mengelola TTL indeks pencarian, nonaktifkan operasi
UpdateRowpada tabel untuk mencegah inkonsistensi data antara tabel dan indeks pencarian. TTL tabel berlaku per kolom atribut, sedangkan TTL indeks pencarian berlaku untuk seluruh baris. Dengan operasiUpdateRow, pembersihan TTL mungkin hanya menghapus sebagian kolom tabel, sementara seluruh baris tetap tersimpan di indeks pencarian. Untuk memperbarui data, gunakanPutRowguna menimpa seluruh baris.TTL indeks pencarian diukur dalam detik dan menerima nilai
-1atau bilangan bulat positif 32-bit. Nilai-1menyimpan data secara permanen. 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 terlebih dahulu TTL tabel tersebut. Jika Anda menurunkan kedua TTL tersebut, turunkan dulu TTL indeks pencarian.
Tablestore menghapus data indeks pencarian yang kedaluwarsa satu kali 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 lifecycle mencakup menonaktifkan operasi UpdateRow untuk tabel, mengonfigurasi TTL indeks pencarian, dan—jika diperlukan—mengonfigurasi TTL tabel. Urutan Langkah 2 dan 3 dapat disesuaikan berdasarkan batasan TTL yang dijelaskan di atas.
-
Nonaktifkan operasi
UpdateRowuntuk tabel.Contoh berikut menonaktifkan operasi
UpdateRowuntukexample_table.table_options = TableOptions( time_to_live=None, max_version=None, max_time_deviation=None, allow_update=False, ) client.update_table( "example_table", table_options=table_options, ) -
Konfigurasikan TTL indeks pencarian.
Pilih opsi berdasarkan apakah indeks pencarian sudah ada atau belum.
Indeks baru
Atur TTL tujuh hari saat membuat indeks pencarian.
fields = [ FieldSchema("category", FieldType.KEYWORD, index=True), FieldSchema("price", FieldType.LONG, index=True), ] index_meta = SearchIndexMeta( fields, time_to_live=7 * 24 * 60 * 60, ) client.create_search_index( "example_table", "example_index", index_meta, )Indeks yang sudah ada
Perbarui TTL indeks pencarian yang sudah ada menjadi tujuh hari.
index_meta = SearchIndexMeta( fields=None, time_to_live=7 * 24 * 60 * 60, ) client.update_search_index( "example_table", "example_index", index_meta, ) -
Konfigurasikan TTL tabel jika diperlukan.
Contoh berikut mengatur TTL
example_tablemenjadi tujuh hari. Jalankan operasi ini sebelum atau sesudah mengonfigurasi TTL indeks pencarian sesuai dengan batasan yang dijelaskan di atas.table_options = TableOptions( time_to_live=7 * 24 * 60 * 60, max_version=None, max_time_deviation=None, ) client.update_table( "example_table", table_options=table_options, )
Setelah konfigurasi, kueri informasi tabel dan kueri informasi indeks pencarian untuk memverifikasi kedua TTL tersebut.