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ı
1olarak 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
UpdateRowiş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.UpdateRowkullanı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ıylaPutRowkullanın.Arama dizini TTL'si saniye cinsinden ölçülür ve
-1veya pozitif bir 32 bitlik tamsayı değerini kabul eder.-1değ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.
-
Tablo için
UpdateRowişlemlerini devre dışı bırakın.Aşağıdaki örnek,
example_tableiçinUpdateRowiş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, ) -
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, ) -
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.