Waktu Hidup (TTL) adalah atribut indeks pencarian yang menentukan periode retensi data dalam indeks tersebut. Anda dapat menetapkan TTL untuk indeks pencarian. Ketika data di indeks melebihi periode TTL yang ditentukan, Tablestore secara otomatis menghapus data tersebut untuk membebaskan ruang penyimpanan dan mengurangi biaya.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Instance OTSClient.
Sebuah tabel data telah dibuat. Untuk informasi lebih lanjut, lihat Buat Tabel Data.
Catatan penggunaan
Sebelum menentukan TTL dari indeks pencarian, nonaktifkan operasi UpdateRow pada tabel data tempat indeks pencarian dibuat. Jika tidak, masalah semantik mungkin terjadi.
TTL yang ditentukan untuk tabel data berlaku pada kolom atribut, sedangkan TTL untuk indeks pencarian berlaku pada seluruh baris. Jika tabel data diperbarui menggunakan operasi UpdateRow, beberapa nilai bidang dihapus sementara yang lain tetap ada di tabel data ketika Tablestore membersihkan data. Namun, seluruh baris di indeks pencarian yang dibuat untuk tabel data tidak dihapus, sehingga menyebabkan inkonsistensi antara data di tabel dan indeks pencarian.
Jika tabel data harus diperbarui, periksa apakah Anda dapat menggunakan operasi PutRow sebagai pengganti operasi UpdateRow.
TTL dari indeks pencarian dapat diatur ke -1 atau bilangan bulat positif int32. Unit: detik. Nilai -1 menunjukkan bahwa data di indeks pencarian tidak pernah kedaluwarsa. Nilai int32 maksimum setara dengan sekitar 68 tahun.
TTL dari indeks pencarian bersifat independen dan tidak boleh lebih besar dari TTL dari tabel data tempat indeks pencarian dibuat. Jika Anda perlu mengurangi TTL dari indeks pencarian dan tabel data, ubah terlebih dahulu TTL dari indeks pencarian sebelum mengubah TTL tabel data.
Tablestore secara otomatis menghapus data yang kedaluwarsa dari indeks pencarian setiap hari. Anda masih dapat menanyakan data yang kedaluwarsa di indeks pencarian sebelum data tersebut dihapus. Tablestore akan menghapus data yang kedaluwarsa di siklus berikutnya.
Setelah mengubah TTL dari tabel data dan indeks pencarian, Tablestore secara otomatis menghapus data historis yang kedaluwarsa dari tabel data dan indeks pencarian di siklus berikutnya.
Prosedur
Nonaktifkan operasi UpdateRow pada tabel data.
Kode contoh berikut menunjukkan cara melarang operasi UpdateRow pada tabel data:
def disable_table_update(client): # Larang operasi UpdateRow pada tabel data untuk mencegah dampak pada bisnis Anda. table_options = TableOptions(time_to_live=None, max_version=None, max_time_deviation=None, allow_update=False) client.update_table('<TABLE_NAME>', table_options, None)Tentukan TTL dari indeks pencarian.
Setelah operasi UpdateRow pada tabel data dinonaktifkan, Anda dapat menentukan TTL untuk indeks pencarian yang sudah ada atau saat membuat indeks pencarian baru.
Tentukan TTL saat Anda membuat indeks pencarian
Kode contoh berikut menunjukkan cara membuat indeks pencarian dengan TTL yang ditentukan. Dalam contoh ini, indeks pencarian mencakup kolom berikut: kolom Col_Keyword tipe Keyword dan kolom Col_Long tipe Long. TTL dari indeks pencarian diatur menjadi tujuh hari.
def create_index_with_ttl(client): # Bidang tipe Keyword field_keyword = FieldSchema('Col_Keyword', FieldType.KEYWORD) # Bidang tipe Long field_long = FieldSchema('Col_Long', FieldType.LONG) fields = [field_keyword, field_long] index_meta = SearchIndexMeta(fields, time_to_live=24 * 3600 * 7) client.create_search_index('<TABLE_NAME>', '<SEARCH_INDEX_NAME>', index_meta)Tentukan TTL dari indeks pencarian yang sudah ada
Kode contoh berikut menunjukkan cara menetapkan TTL dari indeks pencarian yang sudah ada menjadi tujuh hari:
def update_index_with_ttl(client): index_meta = SearchIndexMeta(fields=None, time_to_live=24 * 3600 * 7) client.update_search_index('<TABLE_NAME>', '<SEARCH_INDEX_NAME>', index_meta)TTL dari indeks pencarian bersifat independen dari TTL tabel data tempat indeks pencarian dibuat. Anda dapat menentukan TTL untuk tabel data.
Kode contoh berikut menunjukkan cara menetapkan TTL dari tabel data menjadi tujuh hari:
def update_table_ttl(client): table_options = TableOptions(time_to_live=24 * 3600 * 7, max_version=None, max_time_deviation=None) client.update_table('<TABLE_NAME>', table_options, None)
FAQ
Apa yang harus saya lakukan jika pesan kesalahan
must be bigger than or equal search index ttl dikembalikan ketika saya memodifikasi TTL dari tabel data?Referensi
Anda dapat memanggil operasi ListSearchIndex untuk menanyakan semua indeks pencarian yang dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Daftar Indeks Pencarian.
Anda dapat memanggil operasi DescribeSearchIndex untuk menanyakan deskripsi indeks pencarian, seperti informasi bidang dan konfigurasi indeks pencarian. Untuk informasi lebih lanjut, lihat Tanyakan Deskripsi Indeks Pencarian.
Anda dapat memodifikasi skema indeks pencarian secara dinamis untuk menambah, memperbarui, atau menghapus kolom indeks di indeks pencarian. Untuk informasi lebih lanjut, lihat Modifikasi Skema Indeks Pencarian Secara Dinamis.
Anda dapat menghapus indeks pencarian yang tidak lagi Anda perlukan. Untuk informasi lebih lanjut, lihat Hapus Indeks Pencarian.