全部产品
Search
文档中心

Tablestore:Versi Data dan TTL

更新时间:Jul 06, 2025

Anda dapat menggunakan versi data dan waktu hidup (TTL) untuk mengelola data secara efisien serta meminimalkan penggunaan penyimpanan dan biaya penyimpanan.

Maks Versi

Nilai maks versi menentukan jumlah maksimum versi yang dapat disimpan untuk data dalam kolom atribut. Jika jumlah versi data di kolom atribut melebihi maks versi, sistem secara otomatis menghapus data dari versi sebelumnya dalam mode asinkron.

Penting

Tablestore tidak memberlakukan batasan pada Maks Versi. Namun, kami menyarankan Anda untuk menetapkan Maks Versi ke nilai yang tidak lebih besar dari 500 demi performa optimal dan kemudahan penggunaan.

Jika Anda tidak menentukan nilai untuk Maks Versi saat membuat tabel data, nilai default 1 akan digunakan. Anda juga dapat menentukan nilai kustom untuk Maks Versi untuk data di kolom atribut. Setelah Anda membuat tabel data, Anda dapat memanggil operasi UpdateTable untuk memodifikasi nilai Maks Versi untuk tabel data tersebut.

Jika jumlah versi melebihi nilai maks versi yang Anda tentukan, data dari versi sebelumnya menjadi tidak valid dan Anda tidak dapat membaca data tersebut meskipun data belum dihapus oleh Tablestore.

  • Saat Anda menurunkan nilai maks versi, Tablestore secara asinkron menghapus data dari versi sebelumnya jika jumlah versi data melebihi nilai baru dari maks versi.

  • Saat Anda menaikkan nilai maks versi, Anda dapat membaca data dari versi tertentu jika Tablestore belum menghapus data dari versi tersebut dan versi tersebut berada dalam rentang versi baru.

Nomor Versi

Setelah Anda mengonfigurasi Maks Versi untuk tabel data, setiap kali Anda memperbarui nilai di kolom atribut, Tablestore menghasilkan versi baru untuk nilai tersebut. Nomor versi adalah cap waktu dalam milidetik.

Saat Anda menulis data ke kolom atribut, Anda dapat menentukan nomor versi. Jika Anda tidak menentukan nomor versi, Tablestore secara otomatis menghasilkan nomor versi. Nomor versi adalah cap waktu dalam milidetik. Jika Anda ingin membandingkan nomor versi dengan nilai TTL atau menghitung offset versi maks, Anda harus membagi nomor versi dengan 1.000.

  • Secara default, nomor versi yang dihasilkan oleh Tablestore adalah cap waktu saat ini, yaitu jumlah milidetik yang telah berlalu sejak 00:00:00 UTC pada 1 Januari 1970.

  • Jika Anda menentukan nomor versi untuk kolom atribut, pastikan bahwa nomor versi adalah timestamp 64-bit yang akurat hingga milidetik dan berada dalam rentang versi yang valid.

Anda dapat menggunakan nomor versi untuk mengimplementasikan fitur-fitur berikut:

  • TTL

    Anda dapat menentukan TTL nilai kolom atribut dalam tabel data berdasarkan nomor versi. Saat data dari versi tertentu di kolom atribut disimpan selama periode waktu yang melebihi nilai TTL, Tablestore secara otomatis menghapus data dari versi tertentu tersebut dalam mode asinkron.

    Sebagai contoh, nomor versi data di kolom atribut adalah 1.468.944.000.000, yang sama dengan 00:00:00 UTC+8 pada 20 Juli 2016. Jika Anda menetapkan nilai TTL menjadi 86.400 detik (satu hari), data dari versi ini kedaluwarsa pada 00:00:00 UTC+8 pada 21 Juli 2016. Tablestore secara otomatis menghapus data dalam mode asinkron setelah data kedaluwarsa.

  • Jumlah maksimum versi atau rentang nomor versi yang ingin dibaca oleh Tablestore dari setiap kolom atribut

    Saat Tablestore membaca baris data, Anda dapat menentukan jumlah maksimum versi atau rentang nomor versi yang ingin dibaca oleh Tablestore dari setiap kolom atribut. Untuk informasi lebih lanjut, lihat Baca data.

TTL

TTL menentukan periode validitas data dalam tabel data dalam detik. Saat data dari versi tertentu di kolom atribut disimpan selama periode waktu yang melebihi nilai TTL, Tablestore secara otomatis menghapus data dari versi tertentu tersebut dalam mode asinkron dari kolom atribut. Jika data di semua kolom atribut dari sebuah baris disimpan selama periode waktu yang melebihi nilai TTL, Tablestore secara otomatis menghapus baris tersebut dalam mode asinkron.

Sebagai contoh, Anda menetapkan TTL data dalam tabel data menjadi 86.400 detik (satu hari). Pada 00:00:00 UTC+8 pada 21 Juli 2016, data yang memiliki nomor versi lebih kecil dari 1.468.944.000.000 kedaluwarsa. Nomor versi 1.468.944.000.000 sama dengan 00:00:00 UTC+8 pada 20 Juli 2016 setelah dibagi 1.000 untuk dikonversi ke detik. Tablestore secara otomatis menghapus data yang kedaluwarsa dalam mode asinkron.

Jika Anda tidak menentukan nilai untuk TTL saat membuat tabel data, nilai default -1 akan digunakan. Nilai -1 menunjukkan bahwa data dalam tabel data tidak pernah kedaluwarsa. Anda juga dapat menentukan nilai TTL kustom. Setelah Anda membuat tabel data, Anda dapat memanggil operasi UpdateTable untuk memodifikasi nilai TTL untuk data dalam tabel data.

Jika data disimpan selama periode waktu yang melebihi nilai TTL, data menjadi tidak valid dan Anda tidak dapat membaca data tersebut meskipun data belum dihapus oleh Tablestore.

Penting

TTL tabel data bersifat independen dan harus lebih besar dari atau sama dengan TTL indeks sekunder yang dibuat untuk tabel data. Jika indeks sekunder dibuat untuk tabel data dan Anda ingin memodifikasi TTL tabel data, lakukan operasi berdasarkan situasi aktual.

  • Jika TTL baru tabel data lebih kecil dari TTL indeks sekunder, ubah TTL indeks sekunder menjadi nilai yang lebih kecil dari atau sama dengan TTL baru tabel data dengan menggunakan SDK untuk memanggil operasi UpdateTable, lalu ubah TTL tabel data menjadi nilai baru.

  • Jika TTL baru tabel data lebih besar dari atau sama dengan TTL indeks sekunder, ubah TTL tabel data menjadi nilai baru.

  • Saat Anda menurunkan nilai TTL, Tablestore secara asinkron menghapus data yang disimpan selama periode waktu yang melebihi nilai TTL baru.

  • Saat Anda menaikkan nilai TTL, Anda dapat membaca data dari versi tertentu jika Tablestore belum menghapus data tersebut dan data dari versi tersebut disimpan selama periode waktu yang berada dalam nilai TTL baru.

Offset Versi Maks

Jika selisih antara waktu saat ini dan cap waktu versi yang Anda tentukan melebihi nilai TTL yang Anda tentukan untuk tabel data, data yang ditulis langsung kedaluwarsa. Untuk mengatasi masalah ini, Tablestore memungkinkan Anda mengonfigurasi offset versi maks.

Offset versi maks menentukan selisih maksimum antara waktu sistem saat ini dan nomor versi yang ditentukan dalam detik. Nilai offset versi maks adalah bilangan bulat positif yang dapat lebih besar dari jumlah detik yang telah berlalu sejak 00:00:00 UTC pada 1 Januari 1970.

Saat Anda menulis data ke kolom atribut, Tablestore memeriksa nomor versi data. Rentang versi valid data dalam kolom atribut dihitung dengan menggunakan rumus berikut: Rentang versi valid = [max{Waktu penulisan data - Offset versi maks, Waktu penulisan data - Nilai TTL}, Waktu penulisan data + Offset versi maks). Anda hanya dapat menulis data ke kolom atribut jika nomor versi data (dikonversi ke detik dengan membagi 1.000) berada dalam rentang versi valid.

Sebagai contoh, Anda menetapkan offset versi maks data di setiap kolom atribut tabel data menjadi 86.400 detik (satu hari). Pada 00:00:00 UTC pada 21 Juli 2016, hanya data yang memiliki rentang versi antara 1.468.944.000.000 (00:00:00 UTC+8 pada 20 Juli 2016) dan 1.469.116.800.000 (00:00:00 UTC+8 pada 22 Juli 2016) yang dapat ditulis. Jika Anda mencoba menulis baris data di mana nomor versi data di kolom atribut adalah 1.468.943.999.000 (23:59:59 UTC+8 pada 19 Juli 2016), baris gagal ditulis.

Jika Anda tidak menentukan nilai untuk offset versi maks saat membuat tabel data, nilai default 86.400 akan digunakan. Anda juga dapat menentukan offset versi maks kustom untuk data dalam tabel data. Setelah Anda membuat tabel data, Anda dapat memanggil operasi UpdateTable untuk memodifikasi offset versi maks untuk data dalam tabel data.

Cara Menggunakan

Saat Anda membuat tabel data, Anda dapat mengonfigurasi parameter seperti maks versi dan TTL. Anda juga dapat memodifikasi parameter seperti maks versi dan TTL setelah Anda membuat tabel data. Bagian ini menjelaskan cara memodifikasi konfigurasi tabel data setelah tabel data dibuat.

Catatan

Untuk informasi lebih lanjut tentang cara mengonfigurasi versi data dan TTL saat Anda membuat tabel data, lihat Operasi pada tabel.

Gunakan Konsol Tablestore

Anda dapat memodifikasi maks versi, TTL, dan offset versi maks untuk tabel data di Konsol Tablestore.

  1. Masuk ke Konsol Tablestore.

  2. Di halaman Overview, temukan instance yang ingin Anda kelola dan klik Manage Instance di kolom Actions.

  3. Di bagian Tables tab Instance Details, klik nama tabel data yang ingin Anda kelola.

  4. Di bagian Description tab Basic Information, klik Modify Attributes.

  5. Di kotak dialog Modify Attributes, modifikasi parameter seperti yang dijelaskan dalam tabel berikut.

    Parameter

    Deskripsi

    Time To Live

    Periode retensi data dalam tabel data. Jika periode retensi melebihi nilai TTL, Tablestore secara otomatis menghapus data yang kedaluwarsa. Unit: detik.

    Nilai parameter ini harus -1, atau lebih besar dari atau sama dengan 86400 (1 hari). Nilai -1 menentukan bahwa data tidak pernah kedaluwarsa.

    Penting

    Untuk membuat indeks untuk tabel data, pastikan bahwa TTL tabel data memenuhi salah satu kondisi berikut:

    • TTL tabel data diatur ke -1, yang menunjukkan bahwa data dalam tabel data tidak pernah kedaluwarsa.

    • TTL tabel data diatur ke nilai selain -1 dan operasi pembaruan pada tabel data dilarang.

      Jika Anda telah membuat indeks untuk tabel data, Anda harus menetapkan parameter Allow Updates ke No sebelum Anda dapat memodifikasi TTL.

    Maks Versi

    Jumlah maksimum versi yang dapat disimpan untuk data di kolom atribut tabel data. Jika jumlah versi data di kolom atribut melebihi nilai parameter ini, sistem menghapus data dari versi sebelumnya.

    Nilai parameter ini harus bilangan bulat positif.

    Penting

    Untuk membuat indeks untuk tabel data, pastikan bahwa nilai parameter ini diatur ke 1 untuk tabel data. Jika Anda telah membuat indeks untuk tabel data, Anda tidak dapat memodifikasi nilai parameter ini.

    Offset Versi Maks

    Selisih maksimum antara waktu sistem saat ini dan versi data yang ditentukan. Unit: detik. Nilai Offset Versi Maks adalah bilangan bulat positif yang dapat lebih besar dari jumlah detik yang telah berlalu sejak 00:00:00 UTC pada 1 Januari 1970.

    Selisih antara nomor versi dan waktu penulisan data harus kurang dari atau sama dengan offset versi maks. Jika tidak, terjadi kesalahan saat data ditulis.

    Rentang versi valid data dalam kolom atribut dihitung dengan menggunakan rumus berikut: Rentang versi valid = [max{Waktu penulisan data - Offset Versi Maks, Waktu penulisan data - Nilai TTL}, Waktu penulisan data + Offset Versi Maks).

    Izinkan Pembaruan

    Menentukan apakah akan mengizinkan penulisan data dengan memanggil operasi UpdateRow. Nilai default: Yes.

    Jika Anda telah membuat indeks untuk tabel data, Anda harus menetapkan parameter Allow Updates ke No sebelum Anda memodifikasi TTL.

    Penting

    Jika Anda ingin menggunakan fitur TTL indeks pencarian, Anda harus menetapkan parameter ini ke No. Untuk informasi lebih lanjut, lihat TTL indeks pencarian.

  6. Klik OK.

Gunakan CLI Tablestore

Anda dapat menggunakan CLI Tablestore untuk memodifikasi konfigurasi tabel data.

Jalankan perintah alter untuk memodifikasi nilai Maks Versi atau TTL tabel data. Untuk informasi lebih lanjut, lihat Perbarui tabel.

Contoh perintah berikut memodifikasi TTL tabel mytable menjadi 86.400 detik (1 hari) dan Maks Versi menjadi 1:

alter -t mytable --ttl 86400 --version 1

Gunakan SDK Tablestore

Anda dapat menggunakan SDK Tablestore SDK for Java, SDK for Go, SDK for Python, SDK for Node.js, SDK for .NET, dan SDK for PHP untuk memodifikasi parameter seperti Maks Versi, TTL, dan Offset Versi Maks tabel data. Dalam contoh berikut, SDK Tablestore for Java digunakan.

Contoh kode berikut memodifikasi Maks Versi menjadi 5, TTL menjadi -1, dan Offset Versi Maks menjadi 86.400 untuk tabel data:

private static void updateTable(SyncClient client) {
    // Tentukan TTL. Nilai -1 menentukan bahwa data tidak pernah kedaluwarsa. Unit: detik.
    int timeToLive = -1;
    // Perbarui Maks Versi menjadi 5.
    int maxVersions = 5; 
    // Perbarui Offset Versi Maks menjadi 86400. Unit: detik.
    int maxTimeDeviation=86400;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions,maxTimeDeviation);
    // Tentukan nama tabel.
    UpdateTableRequest request = new UpdateTableRequest("<TABLE_NAME>");
    request.setTableOptionsForUpdate(tableOptions);
    client.updateTable(request);
}

Penagihan

  • Saat Anda menggunakan fitur maks versi, Anda dikenakan biaya untuk penggunaan penyimpanan nomor versi dan data dengan berbagai nomor versi.

  • Saat Anda mengonfigurasi TTL untuk menghapus data, Anda tidak dikenakan biaya untuk operasi penghapusan yang dilakukan oleh Tablestore. Saat Anda mengaktifkan fitur TTL, Tablestore menambahkan cap waktu ke setiap kolom atribut sebagai nomor versi. Anda dikenakan biaya untuk penggunaan penyimpanan nomor versi dan data dengan berbagai nomor versi.

Untuk informasi lebih lanjut, lihat Penggunaan Penyimpanan.

FAQ