All Products
Search
Document Center

Tablestore:Manajemen lifecycle

Last Updated:Jun 21, 2026

Time to live (TTL) adalah atribut search index yang menentukan periode retensi data. Tablestore secara otomatis menghapus data yang melebihi periode retensinya untuk mengurangi penggunaan penyimpanan dan menekan biaya penyimpanan.

Catatan penggunaan

Untuk menggunakan fitur manajemen lifecycle, Anda harus menonaktifkan operasi tulis UpdateRow pada tabel data.

  • Persyaratan ini mencegah inkonsistensi data antara tabel data dan search index.

    TTL tabel data diterapkan per kolom atribut, sedangkan TTL search index diterapkan pada seluruh baris. Jika Anda menggunakan operasi UpdateRow, Tablestore mungkin menghapus beberapa kolom dari tabel data sementara baris terkait tetap ada di search index, sehingga keduanya menjadi tidak sinkron.

    Jika Anda perlu memperbarui data, gunakan operasi PutRow untuk menimpa seluruh baris tersebut.

  • TTL untuk search index, yang ditentukan dalam satuan detik, dapat berupa -1 atau bilangan bulat positif 32-bit. Nilai -1 berarti data disimpan secara permanen. Nilai maksimumnya sekitar 68 tahun.

  • TTL search index bersifat independen dari TTL tabel data. Nilai TTL search index harus kurang dari atau sama dengan nilai TTL tabel data. Saat mengurangi kedua TTL tersebut, turunkan terlebih dahulu TTL search index, lalu baru turunkan TTL tabel data.

  • Tablestore secara otomatis membersihkan data yang telah kedaluwarsa dari search index setiap hari. Anda masih dapat melakukan kueri terhadap data yang telah kedaluwarsa hingga data tersebut dihapus dalam proses pembersihan ini.

  • Setelah Anda memperbarui TTL untuk tabel data dan search index, Tablestore akan menghapus data yang baru saja kedaluwarsa selama siklus pembersihan berikutnya.

Prosedur

Anda dapat mengatur time to live (TTL) untuk search index melalui Konsol atau SDK. Operasi UpdateRow pada tabel data harus tetap dinonaktifkan agar fitur ini dapat digunakan.

Konsol

  1. Nonaktifkan operasi tulis UpdateRow untuk tabel data.

    1. Pada tab Basic Information tabel data, klik Modify Attributes.

    2. Pada kotak dialog Modify Attributes, atur No ke No, centang kotak notifikasi risiko, lalu klik OK.

  2. Atur time to live (TTL) untuk search index.

    Setelah menonaktifkan operasi UpdateRow pada tabel data, Anda dapat mengatur TTL pada search index baru atau yang sudah ada.

    New index

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

    2. Pada kotak dialog Create Index, atur nama indeks dan metode pembuatan skema.

    3. Aktifkan sakelar Advanced Settings, atur Time to Live, lalu klik OK.

      Atur Time to Live ke -1 agar data tidak kedaluwarsa.

    Existing index

    1. Pada tab Indexes tabel data, temukan search index target dan klik Index Details di kolom Actions.

    2. Pada kotak dialog Index Details, klik Modify, perbarui nilai Time to Live, lalu klik Modify.

      Nilai Time to Live dalam satuan detik. Nilai minimumnya adalah 86.400 (satu hari), atau Anda dapat mengaturnya ke -1 agar data tidak kedaluwarsa. TTL search index tidak boleh melebihi TTL tabel data.

  3. Untuk membuat data pada tabel data itu sendiri kedaluwarsa, Anda harus mengatur TTL-nya secara terpisah.

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

    2. Pada kotak dialog Modify Attributes, atur time to live sesuai kebutuhan, lalu klik OK.

SDK

Anda dapat menggunakan Java SDK atau Go SDK untuk mengelola lifecycle data. Contoh berikut menggunakan Java SDK.

  1. Larang operasi UpdateRow pada tabel data.

    Kode contoh berikut menunjukkan cara melarang operasi UpdateRow pada tabel data:

    public static void disableTableUpdate(SyncClient client) {
        UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
        TableOptions options = new TableOptions();
        // Larang operasi UpdateRow pada tabel data untuk mencegah dampak pada bisnis Anda.
        options.setAllowUpdate(false);
        updateTableRequest.setTableOptionsForUpdate(options);
        client.updateTable(updateTableRequest);
    }
  2. Tentukan TTL untuk search index.

    Setelah operasi UpdateRow pada tabel data dilarang, Anda dapat menentukan TTL untuk search index yang sudah ada atau saat membuat search index baru.

    Tentukan TTL saat membuat search index

    Kode contoh berikut menunjukkan cara membuat search index dengan TTL yang telah ditentukan. Dalam contoh ini, search index terdiri atas kolom-kolom berikut: kolom Col_Keyword bertipe String dan kolom Col_Long bertipe Long. TTL search index-nya adalah tujuh hari.

    // Gunakan Tablestore SDK for Java V5.12.0 atau versi lebih baru.
    public static void createIndexWithTTL(SyncClient client) {
        int days = 7;
        CreateSearchIndexRequest createRequest = new CreateSearchIndexRequest();
        // Tentukan nama tabel data.
        createRequest.setTableName("<TABLE_NAME>");
        // Tentukan nama search index.
        createRequest.setIndexName("<SEARCH_INDEX_NAME>");
        IndexSchema indexSchema = new IndexSchema();
        indexSchema.setFieldSchemas(Arrays.asList(
                // Tentukan nama dan tipe bidang.
                new FieldSchema("Col_Keyword", FieldType.KEYWORD),
                new FieldSchema("Col_Long", FieldType.LONG)));
        createRequest.setIndexSchema(indexSchema);
        // Tentukan TTL untuk search index.
        createRequest.setTimeToLiveInDays(days);
        // Buat search index.
        client.createSearchIndex(createRequest);
    }

    Ubah TTL search index yang sudah ada

    Kode contoh berikut menunjukkan cara mengatur TTL search index yang sudah ada menjadi 7 hari:

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

    Kode contoh berikut menunjukkan cara mengatur TTL tabel data menjadi 7 hari:

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