Tüm Ürünler
Search
Belge Merkezi

Tablestore:Configure the TTL of a search index

Son Güncelleme:Oct 02, 2026

Tablestore SDK for Python 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

  • Tablestore SDK for Python yükleyin ve bir istemci başlatın.

  • Bir tablo mevcuttur ve maksimum veri sürümü sayısı 1 olarak ayarlanmıştır.

Kullanım notları

  • Arama dizini TTL'sini yönetmeden önce, tablo ile arama dizini arasındaki veri tutarsızlıklarını önlemek için tabloda UpdateRow işlemlerini devre dışı bırakın. Tablo TTL'si tek tek öznitelik sütunlarına uygulanırken, arama dizini TTL'si tüm bir satıra uygulanır. UpdateRow kullanıldığında, TTL temizleme işlemi 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 verilerin kalıcı olarak saklanmasını sağlar. Maksimum pozitif değer yaklaşık 68 yıllık bir saklama süresini temsil eder.

  • Arama dizini TTL'si ve 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şiklik nedeniyle 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 işlemlerini 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. Yukarıda açıklanan TTL kısıtlamasına göre 2. ve 3. Adımların sırasını belirleyin.

  1. Tablo için UpdateRow işlemlerini devre dışı bırakın.

    Aşağıdaki örnek, example_table için UpdateRow işlemlerini devre dışı bırakır.

    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,
    )
  2. Arama dizini TTL'sini yapılandırın.

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

    Yeni dizin

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

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

    Mevcut dizin

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

    index_meta = SearchIndexMeta(
        fields=None,
        time_to_live=7 * 24 * 60 * 60,
    )
    client.update_search_index(
        "example_table",
        "example_index",
        index_meta,
    )
  3. Gerekirse tablo TTL'sini yapılandırın.

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

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

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