全部产品
Search
文档中心

Tablestore:Tentukan TTL dari indeks pencarian

更新时间:Jun 24, 2025

Waktu Hidup (TTL) adalah atribut indeks pencarian yang menentukan periode retensi data. Anda dapat menentukan TTL untuk indeks pencarian. Ketika data melebihi periode TTL yang ditentukan, Tablestore secara otomatis menghapusnya untuk membebaskan ruang penyimpanan dan mengurangi biaya.

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 yang ditentukan 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 tidak dihapus, sehingga menyebabkan inkonsistensi antara tabel data 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 tidak pernah kedaluwarsa. Nilai int32 maksimum setara dengan sekitar 68 tahun.

  • TTL dari indeks pencarian bersifat independen dan tidak boleh lebih besar dari TTL tabel data tempat indeks pencarian dibuat. Jika Anda perlu mengurangi TTL dari indeks pencarian dan tabel data, ubah TTL indeks pencarian terlebih dahulu sebelum mengubah TTL tabel data.

  • Tablestore secara otomatis menghapus data kedaluwarsa dari indeks pencarian setiap hari. Data kedaluwarsa masih dapat diakses hingga siklus pembersihan berikutnya.

  • Setelah mengubah TTL tabel data dan indeks pencarian, Tablestore secara otomatis menghapus data historis yang kedaluwarsa pada siklus berikutnya.

Prosedur

Anda dapat menentukan TTL dari indeks pencarian menggunakan konsol Tablestore atau SDK Tablestore. Untuk menggunakan fitur TTL dari indeks pencarian, larang operasi UpdateRow pada tabel data tempat indeks pencarian dibuat.

Gunakan konsol Tablestore

  1. Nonaktifkan operasi UpdateRow pada tabel data.

    1. Di bagian Deskripsi tab Basic Information tabel data, klik Modify Attributes.

    2. Di kotak dialog Modify Attributes, atur Izinkan Pembaruan ke No, centang kotak risiko, lalu klik OK.fig_tableupdate

  2. Tentukan TTL dari indeks pencarian.

    Setelah operasi UpdateRow dilarang, Anda dapat menentukan TTL untuk indeks pencarian yang sudah ada atau saat membuat indeks pencarian baru.

    Tentukan TTL saat Anda membuat indeks pencarian

    1. Pada tab Indexes tabel data, klik Create Search Index.

    2. Di kotak dialog Create Index, konfigurasikan parameter Nama Indeks, Waktu Hidup, dan Jenis Pembuatan Skema.

    3. Aktifkan Advanced Settings, konfigurasikan parameter Waktu Hidup, lalu klik OK.

      image

    Tentukan TTL untuk indeks pencarian yang sudah ada

    1. Pada tab Indexes tabel data, temukan indeks pencarian yang ingin Anda tentukan TTL-nya dan klik Index Details di kolom Aksi.fig_indexdetailsenter

    2. Di kotak dialog Index Details, klik Modify, ubah nilai parameter Waktu Hidup, lalu klik Modify.

      image

  3. TTL dari indeks pencarian bersifat independen dari TTL tabel data tempat indeks pencarian dibuat. Jika Anda ingin menggunakan TTL dari tabel data, konfigurasikan TTL untuk tabel data.

    1. Di bagian Description tab Basic Information tabel data, klik Modify Attributes.

    2. Di kotak dialog Modify Attributes, konfigurasikan parameter Waktu Hidup sesuai kebutuhan bisnis Anda dan klik OK.fig_ttltablemodify

Gunakan SDK Tablestore

Anda dapat menentukan TTL dari indeks pencarian menggunakan SDK Tablestore untuk Java atau SDK Tablestore untuk Go. Dalam contoh ini, SDK Tablestore untuk Java digunakan.

  1. Larang operasi UpdateRow pada tabel data.

    Kode sampel berikut memberikan contoh cara melarang operasi UpdateRow pada tabel data:

    // Larang operasi UpdateRow pada tabel data untuk mencegah dampak pada bisnis Anda.
    options.setAllowUpdate(false);
  2. Tentukan TTL untuk indeks pencarian.

    Setelah operasi UpdateRow dilarang, Anda dapat menentukan TTL untuk indeks pencarian yang sudah ada atau saat membuat indeks pencarian baru.

    Tentukan TTL saat Anda membuat indeks pencarian

    Kode sampel berikut memberikan contoh cara membuat indeks pencarian dengan TTL yang ditentukan. Dalam contoh ini, indeks pencarian mencakup kolom berikut: kolom Col_Keyword bertipe String dan kolom Col_Long bertipe Long. TTL dari indeks pencarian adalah tujuh hari.

    // Gunakan SDK Tablestore untuk Java V5.12.0 atau yang lebih baru.
    createRequest.setTimeToLiveInDays(days); // Tentukan TTL untuk indeks pencarian.

    Ubah TTL dari indeks pencarian yang sudah ada

    Kode sampel berikut memberikan contoh cara mengatur TTL dari indeks pencarian yang sudah ada menjadi 7 hari:

    // Gunakan Tablestore SDK for Java V5.12.0 atau yang lebih baru. 
    public static void updateIndexWithTTL(SyncClient client) {
        int days = 7;
        UpdateSearchIndexRequest updateSearchIndexRequest = new UpdateSearchIndexRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>");
        // Ubah TTL dari indeks pencarian. 
        updateSearchIndexRequest.setTimeToLiveInDays(days);
        client.updateSearchIndex(updateSearchIndexRequest);
    }
  3. TTL dari tabel data bersifat independen dari TTL indeks pencarian yang dibuat untuk tabel data. Anda dapat menentukan TTL untuk tabel data.

    Kode sampel berikut memberikan contoh cara mengatur TTL dari tabel data menjadi 7 hari:

    public static void updateTableTTL(SyncClient client) {
        int days = 7;
        UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
        TableOptions options = new TableOptions();
        // Mengatur waktu hidup tabel dalam hari
        options.setTimeToLiveInDays(days);
        updateTableRequest.setTableOptionsForUpdate(options);
        client.updateTable(updateTableRequest);
    }