Ücretsiz araç

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.

Unix zaman damgası

Bir DynamoDB TTL attribute'ı, Unix epoch zamanını saniye cinsinden saklar. Kodunu çözmek için bir değer yapıştırın veya saklanacak sayıyı elde etmek için aşağıdan bir tarih seçin.

UTC tarih ve saat

Tue, 14 Nov 2023 22:13:20 GMT

Epoch saniye (TTL değeri)1700000000
Epoch milisaniye1700000000000
ISO 8601 (UTC)2023-11-14T22:13:20.000Z

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.

Console olmadan DynamoDB ile çalışın

DynoTable, DynamoDB için hızlı bir masaüstü istemcisidir — tablolara göz atın, SQL tarzı sorgular çalıştırın ve item'ları yerel olarak düzenleyin.