Time to Live (TTL) di Azure Cosmos DB

BERLAKU UNTUK: NoSQL

Dengan Time to Live atau TTL, Azure Cosmos DB menghapus item secara otomatis dari kontainer setelah periode waktu tertentu. Secara default, Anda dapat mengatur waktu hidup di tingkat kontainer dan mengambil alih nilai berbasis per item. Setelah Anda mengatur TTL di kontainer atau pada tingkat item, Azure Cosmos DB akan secara otomatis menghapus item ini setelah jangka waktu tersebut, sejak waktu terakhir dimodifikasi. Nilai waktu hidup dikonfigurasi dalam hitungan detik. Saat Anda mengonfigurasi TTL, sistem secara otomatis menghapus item yang kedaluwarsa berdasarkan nilai TTL, tanpa memerlukan operasi penghapusan yang dikeluarkan secara eksplisit oleh aplikasi klien. Nilai maksimum untuk TTL adalah 2147483647 detik, perkiraan setara dengan 24.855 hari atau 68 tahun.

Penghapusan item yang kedaluwarsa adalah tugas latar belakang yang menggunakan Unit Permintaan kiri atas yang belum digunakan oleh permintaan pengguna. Bahkan setelah TTL kedaluwarsa, jika kontainer kelebihan beban dengan permintaan dan jika tidak ada cukup RU yang tersedia, penghapusan data akan tertunda. Data dihapus setelah ada cukup RU yang tersedia untuk melakukan operasi hapus. Meskipun penghapusan data tertunda, data tidak dikembalikan oleh kueri apa pun (oleh API apa pun) setelah TTL kedaluwarsa.

Catatan

Konten ini terkait dengan TTL penyimpanan transaksi Azure Cosmos DB. Jika Anda mencari TTL penyimpanan analitik, yang memungkinkan skenario NoETL HTAP melalui Tautan Azure Synapse, klik di sini.

Waktu hidup untuk kontainer dan item

Nilai waktu hidup diatur dalam detik, dan ditafsirkan sebagai delta sejak item terakhir diubah. Anda dapat mengatur waktu hidup pada kontainer atau pada item dalam kontainer:

  1. Time to Live di kontainer (atur menggunakan DefaultTimeToLive):

    • Jika hilang (atau diatur ke null), item tidak kedaluwarsa secara otomatis.

    • Jika ada dan nilai diatur ke "-1", nilainya sama dengan tak terbatas, dan item tidak kedaluwarsa secara default.

    • Jika ada dan nilai diatur ke beberapa angka bukan nol "n" – item akan kedaluwarsa "n" detik setelah waktu terakhir diubah.

  2. Time to Live pada item (diatur menggunakan ttl):

    • Properti ini hanya berlaku jika DefaultTimeToLive ada dan tidak diatur ke null untuk kontainer induk.

    • Jika ada, properti tersebut mengambil alih DefaultTimeToLive nilai kontainer induk.

Konfigurasi Time to Live

  • Jika TTL diatur ke "n" pada kontainer, maka item dalam kontainer tersebut akan kedaluwarsa setelah n detik. Jika ada item dalam kontainer yang sama yang memiliki waktu hidup mereka sendiri, atur ke -1 (menunjukkan bahwa item tidak kedaluwarsa). Jika beberapa item mengambil alih pengaturan waktu hidup dengan angka yang berbeda, item ini kedaluwarsa berdasarkan nilai TTL yang dikonfigurasi sendiri.

  • Jika TTL tidak diatur pada kontainer, maka waktu untuk hidup pada item dalam kontainer ini tidak berpengaruh.

  • Jika TTL pada kontainer diatur ke -1, item dalam kontainer ini yang memiliki waktu untuk hidup diatur ke n, akan kedaluwarsa setelah n detik, dan item yang tersisa tidak akan kedaluwarsa.

Contoh

Bagian ini memperlihatkan beberapa contoh dengan nilai waktu hidup yang berbeda yang ditetapkan ke kontainer dan item:

Catatan

Mengatur TTL ke null pada item tidak didukung. Nilai TTL item harus berupa bilangan bulat positif bukan nol kurang dari atau sama dengan 2147483647, atau -1 yang berarti item tidak akan pernah kedaluwarsa. Untuk menggunakan TTL default pada item, pastikan properti TTL tidak ada.

Contoh 1

TTL pada kontainer diatur ke nihil (DefaultTimeToLive = null)

TTL pada item Hasil
properti ttl hilang TTL dinonaktifkan. Item tidak akan pernah kedaluwarsa (default).
ttl = -1 TTL dinonaktifkan. Item tidak akan pernah kedaluwarsa.
ttl = 2000 TTL dinonaktifkan. Item tidak akan pernah kedaluwarsa.

Contoh 2

TTL pada kontainer diatur ke -1 (DefaultTimeToLive = -1)

TTL pada item Hasil
properti ttl hilang TTL diaktifkan. Item tidak akan pernah kedaluwarsa (default).
ttl = -1 TTL diaktifkan. Item tidak akan pernah kedaluwarsa.
ttl = 2000 TTL diaktifkan. Item akan kedaluwarsa setelah 2000 detik.

Contoh 3

TTL pada kontainer diatur ke 1000 (DefaultTimeToLive = 1000)

TTL pada item Hasil
properti ttl hilang TTL diaktifkan. Item akan kedaluwarsa setelah 1000 detik (default).
ttl = -1 TTL diaktifkan. Item tidak akan pernah kedaluwarsa.
ttl = 2000 TTL diaktifkan. Item akan kedaluwarsa setelah 2000 detik.

Langkah berikutnya

Pelajari cara mengonfigurasi Time to Live di artikel berikut: