DynamoDB TTL Dönüştürücü
Bir DynamoDB TTL değerini okunabilir bir tarihe çözün veya bir tarihi saklanacak epoch saniyeye dönüştürün — bir değer milisaniye gibi göründüğünde bir uyarıyla.
Zamanlar UTC olarak gösterilir. TTL silmeleri, sona ermeden sonraki ~48 saat içinde gerçekleşir.
DynamoDB TTL nasıl çalışır
Time to Live (TTL), DynamoDB'nin item'ları hiçbir ek maliyet olmadan otomatik olarak sona erdirmesini sağlar. Bir Number attribute'unu TTL attribute'u olarak belirlersiniz; değeri saniye cinsinden bir Unix epoch zaman damgasıdır. Bir arka plan işlemi her item'ın TTL'ini geçerli zamanla karşılaştırır ve zamanı geçen item'ları siler — genellikle 48 saat içinde, en iyi çaba temelinde.
Değer saniye olduğundan, bir milisaniye zaman damgası bir numaralı TTL hatasıdır: JavaScript'in Date.now()'undan gelen bir değer 1000× çok büyüktür, bu yüzden item'ın sona erme tarihi uzak geleceğe düşer ve hiç kaldırılmaz. Bu dönüştürücü birimi otomatik algılar ve o durumu işaretler, böylece yayına almadan önce onu yakalarsınız.
Item'ları otomatik olarak sona erdirmek, bir tabloyu boyutlandırmanın bir parçasıdır — DynamoDB TTL kılavuzu onu etkinleştirmeyi, değerleri geriye dönük doldurmayı ve sona eren item'ları okumalardan filtrelemeyi kapsar.
Sıkça sorulan sorular
Bir DynamoDB TTL attribute'ı hangi formatı kullanır?
Bir DynamoDB Time to Live (TTL) attribute'ı, saniye cinsinden ifade edilen bir Unix epoch zaman damgası tutan bir Number olmalıdır — 1970-01-01 UTC'den bu yana geçen saniye sayısı. DynamoDB bu değeri geçerli zamanla karşılaştırır ve değer geçmişte kaldığında item'ı siler. Milisaniye değil saniye olmalı ve bir ISO tarih string'i olmamalıdır.
DynamoDB TTL'im neden item'ları silmiyor?
En yaygın neden, saniye yerine milisaniye saklamaktır. 1700000000000 gibi bir milisaniye değeri saniye olarak okunduğunda on binlerce yıl gelecekte bir tarihe denk gelir, bu yüzden item hiç sona ermez. 1000'e bölün. Ayrıca TTL'in tabloda etkin olduğunu ve doğru attribute'a yönlendirildiğini doğrulayın — o attribute'ta değeri olmayan item'lar hiç sona erdirilmez.
TTL zamanından ne kadar sonra DynamoDB bir item'ı siler?
DynamoDB genellikle sona eren item'ları sona erme zamanından sonraki birkaç gün içinde siler — AWS, en fazla 48 saate kadar bir en iyi çaba penceresi ve yük altında daha uzun süreler belgeler. Sona eren item'lar, arka plan işlemi onları kaldırana kadar okumalarda, Scan'lerde ve Query'lerde hâlâ görünebilir, bu yüzden onları hemen gizlemeniz gerekiyorsa TTL attribute'una göre filtreleyin.
TTL zamanının gelecekte olması gerekir mi?
Hayır. Zaten geçmişte olan bir TTL değeri yazarsanız, item hemen silinmeye uygun hale gelir ve bir sonraki arka plan taramasında kaldırılır. TTL'i geçerli epoch saniyesine ayarlamak, bir item'ı yakın zamanda silinmek üzere zamanlamanın yaygın bir yoludur.