Tüm Ürünler
Search
Belge Merkezi

Tablestore:Configure the TTL of a search index

Son Güncelleme:Oct 02, 2026

Tablestore SDK for Java kullanarak bir arama dizininin yaşam süresini (TTL) yapılandırın. Tablestore, saklama süresi dolduğunda dizin verilerini otomatik olarak kaldırır.

Ön koşullar

Başlamadan önce aşağıdaki gereksinimlerin karşılandığından emin olun:

  • Tablestore SDK for Java 5.12.0 veya sonraki bir sürümün yüklü olması ve istemcinin başlatılmış olması

  • En fazla bir veri sürümüne sahip mevcut bir tablo

Kullanım notları

  • Arama dizini yaşam döngüsü yönetimini kullanmadan önce, tablo ile arama dizini arasında veri tutarsızlıklarını önlemek için tabloda UpdateRow işlemlerini devre dışı bırakın.

    Tablo TTL'si bağımsız nitelik sütunlarına uygulanırken arama dizini TTL'si satırın tamamına uygulanır. UpdateRow işlemiyle TTL temizliği yalnızca bazı tablo sütunlarını kaldırabilir ancak arama dizininde satırın tamamını koruyabilir.

    Verileri güncellemek için tüm satırı üzerine yazmak amacıyla PutRow kullanın.

  • Arama dizini TTL'si saniye cinsinden ölçülür ve -1 veya pozitif bir 32 bitlik tamsayı değerini kabul eder. -1 değeri verileri kalıcı olarak saklar. Maksimum pozitif değer yaklaşık 68 yıllık bir saklama süresine karşılık gelir.

  • Arama dizini TTL'si ile tablo TTL'si bağımsız olarak yapılandırılır ancak arama dizini TTL'si tablo TTL'sine eşit veya ondan küçük olmalıdır. Hedeflenen arama dizini TTL'si mevcut tablo TTL'sinden büyükse öncelikle tablo TTL'sini artırın. Her iki TTL'yi de azaltıyorsanız önce arama dizini TTL'sini azaltın.

  • Tablestore, süresi dolmuş arama dizini verilerini günde bir kez kaldırır. Sonraki temizleme işlemi tamamlanana kadar sorgular henüz kaldırılmamış süresi dolmuş verileri döndürmeye devam edebilir.

  • Bir tablo veya arama dizini TTL'sini güncelledikten sonra Tablestore değişiklikle birlikte süresi dolan verileri sonraki temizleme döngüsü sırasında kaldırır.

Yordam

Yaşam döngüsü yönetimi; tablo için UpdateRow güncellemelerini devre dışı bırakmayı, arama dizini TTL'sini yapılandırmayı ve isteğe bağlı olarak tablo TTL'sini yapılandırmayı içerir. Tablo TTL'sini yapılandırmak her zaman son işlem değildir. İşlem sırası arama dizini TTL'sinin tablo TTL'sine eşit veya ondan küçük olmasını sağlamalıdır. Hedeflenen arama dizini TTL'si mevcut tablo TTL'sinden büyükse öncelikle tablo TTL'sini artırın. Her iki TTL'yi de azaltıyorsanız önce arama dizini TTL'sini azaltın.

  1. UpdateRow ile tablo güncellemelerini devre dışı bırakın.

    Aşağıdaki örnek example_table için UpdateRow güncellemelerini devre dışı bırakır.

    String tableName = "example_table";
    UpdateTableRequest request = new UpdateTableRequest(tableName);
    TableOptions tableOptions = new TableOptions();
    tableOptions.setAllowUpdate(false);
    request.setTableOptionsForUpdate(tableOptions);
    
    client.updateTable(request);
  2. Arama dizini TTL'sini yapılandırın.

    Arama dizininin var olup olmadığına bağlı olarak bir seçenek belirleyin.

    Yeni dizin

    Bir arama dizini oluştururken yedi günlük bir TTL ayarlayın.

    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);

    Mevcut dizin

    Mevcut bir arama dizininin TTL'sini yedi güne güncelleyin.

    String tableName = "example_table";
    String indexName = "example_index";
    UpdateSearchIndexRequest request =
            new UpdateSearchIndexRequest(tableName, indexName);
    request.setTimeToLiveInDays(7);
    
    client.updateSearchIndex(request);
  3. Gerekirse tablo TTL'sini yapılandırın.

    Aşağıdaki örnek example_table tablosunun TTL'sini yedi güne ayarlar. Yukarıda açıklanan TTL kısıtlamasına bağlı olarak bu işlemi arama dizini TTL'sini yapılandırmadan önce veya sonra çalıştırın.

    String tableName = "example_table";
    UpdateTableRequest request = new UpdateTableRequest(tableName);
    TableOptions tableOptions = new TableOptions();
    tableOptions.setTimeToLiveInDays(7);
    request.setTableOptionsForUpdate(tableOptions);
    
    client.updateTable(request);

Yapılandırmadan sonra her iki TTL'yi doğrulamak için tablo bilgilerini ve arama dizini bilgilerini sorgulayın.