Konverter TTL DynamoDB
Dekode nilai TTL DynamoDB menjadi tanggal yang mudah dibaca, atau ubah tanggal menjadi epoch detik untuk disimpan — dengan peringatan saat sebuah nilai tampak seperti milidetik.
Waktu ditampilkan dalam UTC. Penghapusan TTL terjadi dalam ~48 jam setelah kedaluwarsa.
Cara kerja TTL DynamoDB
Time to Live (TTL) memungkinkan DynamoDB mengedaluwarsakan Item secara otomatis tanpa biaya tambahan. Anda menetapkan satu atribut Number sebagai atribut TTL; nilainya adalah Unix epoch timestamp dalam detik. Sebuah proses latar belakang membandingkan TTL setiap Item dengan waktu saat ini dan menghapus Item yang waktunya telah lewat — biasanya dalam 48 jam, secara best-effort.
Karena nilainya adalah detik, timestamp milidetik adalah bug TTL nomor satu: sebuah nilai dari Date.now() JavaScript 1000× terlalu besar, sehingga kedaluwarsa Item mendarat jauh di masa depan dan tidak pernah dihapus. Konverter ini mendeteksi unit secara otomatis dan menandai kasus tersebut sehingga Anda menangkapnya sebelum dikirim ke produksi.
Mengedaluwarsakan Item secara otomatis adalah salah satu bagian dari sizing sebuah tabel — panduan TTL DynamoDB membahas cara mengaktifkannya, mengisi ulang nilai, dan memfilter Item yang kedaluwarsa dari pembacaan.
Pertanyaan yang sering diajukan
Format apa yang digunakan atribut TTL DynamoDB?
Atribut Time to Live (TTL) DynamoDB harus berupa Number yang menyimpan Unix epoch timestamp yang dinyatakan dalam detik — jumlah detik sejak 1970-01-01 UTC. DynamoDB membandingkan nilai tersebut dengan waktu saat ini dan menghapus Item begitu waktunya telah lewat. Harus berupa detik, bukan milidetik, dan bukan string tanggal ISO.
Mengapa TTL DynamoDB saya tidak menghapus Item?
Penyebab paling umum adalah menyimpan milidetik alih-alih detik. Nilai milidetik seperti 1700000000000 yang dibaca sebagai detik adalah tanggal puluhan ribu tahun di masa depan, sehingga Item tidak pernah kedaluwarsa. Bagi dengan 1000. Pastikan juga TTL diaktifkan pada tabel dan diarahkan ke atribut yang benar — Item tanpa nilai pada atribut tersebut tidak pernah dikedaluwarsakan.
Berapa lama setelah waktu TTL DynamoDB menghapus sebuah Item?
DynamoDB biasanya menghapus Item yang kedaluwarsa dalam beberapa hari setelah waktu kedaluwarsa — AWS mendokumentasikan jendela best-effort hingga 48 jam, dan lebih lama saat beban tinggi. Item yang kedaluwarsa mungkin masih muncul dalam pembacaan, Scan, dan Query hingga proses latar belakang menghapusnya, jadi Filter pada atribut TTL jika Anda perlu menyembunyikannya segera.
Apakah waktu TTL harus berada di masa depan?
Tidak. Jika Anda menulis nilai TTL yang sudah berada di masa lalu, Item menjadi memenuhi syarat untuk dihapus segera dan dihilangkan pada penyapuan latar belakang berikutnya. Menetapkan TTL ke epoch detik saat ini adalah cara umum untuk menjadwalkan sebuah Item agar dihapus dalam waktu dekat.