Gunakan versioning data dan Time to Live (TTL) untuk mengelola data secara efisien, mengurangi penggunaan penyimpanan, serta menekan biaya penyimpanan.
Max versions
Max Versions menentukan jumlah maksimum versi data yang disimpan untuk setiap kolom atribut. Jika jumlah versi dalam suatu kolom atribut melebihi batas ini, sistem akan menghapus versi terlama secara asinkron.
Saat ini, Tablestore tidak menerapkan batasan pada Max Versions. Namun, demi kinerja dan kegunaan optimal, kami merekomendasikan agar jumlah versi tidak melebihi 500.
Jika Anda tidak menentukan parameter Max Versions saat membuat tabel data, nilainya secara default diatur ke 1. Anda dapat mengubah nilai ini nanti dengan memanggil operasi UpdateTable.
Versi data yang melebihi batas Max Versions dianggap tidak valid. Anda tidak dapat membaca versi tersebut, meskipun sistem belum menghapusnya.
-
Jika Anda mengurangi nilai Max Versions, sistem akan menghapus secara asinkron versi lama yang kini melebihi batas baru tersebut.
-
Jika Anda menambah nilai Max Versions, versi lama yang sebelumnya tidak dapat diakses mungkin kembali dapat dibaca jika berada dalam batas baru dan belum dihapus.
Nomor versi
Setelah Anda mengonfigurasi Max Versions untuk tabel data, Tablestore akan membuat versi baru dari suatu nilai setiap kali Anda memperbaruinya di kolom atribut. Versi ini diberi nomor versi berupa timestamp dalam milidetik.
Saat menulis data ke kolom atribut, Anda dapat menentukan nomor versi sendiri atau membiarkan sistem menghasilkannya secara otomatis. Karena nomor versi berbasis timestamp milidetik, nilai tersebut harus dibagi 1.000 agar dikonversi ke detik untuk perhitungan TTL dan Max Version Offset.
-
Saat sistem menghasilkan nomor versi secara otomatis, sistem menggunakan waktu saat ini sebagai timestamp milidetik yang dihitung dari
1970-01-01 00:00:00 UTC. -
Saat Anda menentukan nomor versi kustom, nilainya harus berupa timestamp milidetik 64-bit yang berada dalam rentang versi yang valid.
Nomor versi memungkinkan fitur-fitur berikut:
-
TTL
Nomor versi dapat digunakan untuk menentukan siklus hidup nilai dalam kolom atribut. Sistem akan menghapus versi data secara asinkron begitu usianya melebihi TTL yang dikonfigurasi.
Misalnya, jika suatu versi data memiliki nomor versi 1468944000000 (yang sesuai dengan
2016-07-20 00:00:00 UTC+8) dan TTL tabel data diatur ke 86400 (satu hari), versi ini kedaluwarsa pada2016-07-21 00:00:00 UTC+8, dan sistem akan menghapusnya secara asinkron. -
Baca data berdasarkan versi
Saat membaca data baris, Anda dapat menentukan jumlah maksimum versi yang ingin dibaca per kolom atau rentang tertentu dari nomor versi. Untuk informasi selengkapnya, lihat Baca data.
TTL
TTL adalah properti tabel data yang menentukan periode retensi data dalam satuan detik. Sistem akan menghapus versi data dalam kolom atribut secara asinkron ketika usianya melebihi TTL yang dikonfigurasi. Jika semua versi data di seluruh kolom atribut suatu baris kedaluwarsa, sistem akan menghapus seluruh baris tersebut secara asinkron.
Misalnya, jika TTL tabel data diatur ke 86400 (satu hari), maka pada 2016-07-21 00:00:00 UTC+8, semua data kolom atribut dengan nomor versi kurang dari 1468944000000 kedaluwarsa. Timestamp ini sesuai dengan 2016-07-20 00:00:00 UTC+8 setelah dikonversi ke detik. Sistem kemudian akan menghapus data yang kedaluwarsa tersebut secara asinkron.
Jika Anda tidak mengatur TTL saat membuat tabel data, nilainya secara default diatur ke -1, artinya data tidak pernah kedaluwarsa. Anda dapat mengubah TTL nanti dengan memanggil operasi UpdateTable.
TTL tabel data dan TTL indeks sekunder bersifat independen. Namun, TTL tabel data harus lebih besar dari atau sama dengan TTL indeks sekundernya. Saat mengubah TTL tabel data yang memiliki indeks sekunder, ikuti langkah-langkah berikut sesuai skenario Anda:
-
Jika TTL baru untuk tabel data lebih kecil daripada TTL indeks sekundernya, pertama-tama gunakan SDK untuk memanggil operasi UpdateTable guna mengubah TTL indeks sekunder menjadi nilai yang lebih kecil dari atau sama dengan nilai target. Setelah itu, ubah TTL tabel data ke nilai target.
-
Jika TTL baru untuk tabel data lebih besar dari atau sama dengan TTL indeks sekundernya, Anda dapat langsung mengubah TTL tabel data ke nilai target.
Data yang melebihi TTL-nya dianggap kedaluwarsa dan tidak dapat dibaca, meskipun sistem belum menghapusnya.
-
Jika Anda mengurangi nilai TTL, beberapa data dalam tabel data mungkin kedaluwarsa, dan sistem akan menghapus data kedaluwarsa tersebut secara asinkron.
-
Jika Anda menambah TTL, versi lama yang kedaluwarsa berdasarkan TTL sebelumnya mungkin kembali dapat dibaca jika berada dalam periode TTL baru dan belum dihapus.
Max version offset
Untuk mencegah data kedaluwarsa segera setelah ditulis—yang dapat terjadi jika timestamp kustom lebih lama daripada TTL tabel—Anda dapat mengonfigurasi Max Version Offset.
Max Version Offset adalah deviasi maksimum yang diizinkan, dalam satuan detik, antara nomor versi kustom dan waktu sistem saat ini. Nilainya berupa bilangan bulat positif.
Agar operasi penulisan berhasil, sistem memeriksa nomor versi data untuk setiap kolom atribut. Data hanya dapat ditulis jika nomor versinya, setelah dikonversi dari milidetik ke detik, berada dalam rentang versi yang valid yaitu [max{write_time - Max Version Offset, write_time - TTL}, write_time + Max Version Offset).
Misalnya, jika Max Version Offset tabel data adalah 86400 (satu hari), pada 2016-07-21 00:00:00 UTC+8, Anda hanya dapat menulis data dengan nomor versi lebih besar dari 1468944000000 (yang sesuai dengan 2016-07-20 00:00:00 UTC+8 setelah dikonversi ke detik) dan kurang dari 1469116800000 (yang sesuai dengan 2016-07-22 00:00:00 UTC+8 setelah dikonversi ke detik). Jika nomor versi untuk kolom atribut dalam suatu baris adalah 1468943999000 (yang sesuai dengan 2016-07-19 23:59:59 UTC+8 setelah dikonversi ke detik), operasi penulisan untuk baris tersebut gagal.
Jika Anda tidak mengonfigurasi Max Version Offset saat membuat tabel data, nilainya secara default diatur ke 86400. Anda dapat mengubah nilai ini nanti dengan memanggil operasi UpdateTable.
Metode konfigurasi
Anda dapat mengonfigurasi parameter seperti Max Versions dan TTL saat membuat tabel data. Anda juga dapat mengubah parameter ini setelah tabel dibuat. Contoh berikut menunjukkan cara mengubah konfigurasi tabel yang sudah ada.
Untuk informasi tentang cara mengonfigurasi Max Versions atau TTL saat membuat tabel data, lihat Operasi tabel.
Konsol
CLI
SDK
Penagihan
-
Penggunaan beberapa versi data meningkatkan biaya penyimpanan karena Anda dikenai biaya untuk menyimpan nomor versi dan data setiap versi.
-
Pembersihan data berdasarkan TTL tidak dikenai biaya. Namun, mengaktifkan TTL menambahkan timestamp sebagai nomor versi ke setiap kolom atribut, yang meningkatkan penggunaan penyimpanan.
Untuk informasi selengkapnya, lihat Penyimpanan data.