Kebijakan penyimpanan

Kebijakan penyimpanan mengontrol mekanisme yang secara otomatis menghapus data dari tabel atau tampilan yang dimaterialisasi. Sangat berguna untuk menghapus data yang terus mengalir ke tabel, dan yang relevansinya berbasis usia. Misalnya, kebijakan dapat digunakan untuk tabel yang menyimpan peristiwa diagnostik yang mungkin menjadi tidak penting setelah dua minggu.

Kebijakan penyimpanan dapat dikonfigurasi untuk tabel tertentu atau tampilan yang dimaterialisasi, atau untuk seluruh database. Lalu, kebijakan ini berlaku untuk semua tabel dalam database yang tidak mengambil alihnya. Ketika kebijakan dikonfigurasi baik di tingkat database maupun tabel, kebijakan penyimpanan dalam tabel lebih diutamakan daripada kebijakan database.

Menyiapkan kebijakan penyimpanan penting untuk kluster yang terus menyerap data, yang akan membatasi biaya.

Data yang berada "di luar" kebijakan penyimpanan memenuhi syarat untuk penghapusan. Tidak ada jaminan khusus ketika penghapusan terjadi. Data mungkin "masih ada" bahkan jika kebijakan penyimpanan dipicu.

Kebijakan penyimpanan paling sering diatur untuk membatasi usia data sejak penyerapan. Untuk informasi selengkapnya, lihat SoftDeletePeriod.

Catatan

  • Waktu penghapusan tidak tepat. Sistem menjamin bahwa data tidak akan dihapus sebelum batas terlampaui, tetapi penghapusan tidak segera mengikuti titik tersebut.
  • Periode penghapusan sementara 0 dapat diatur sebagai bagian dari kebijakan penyimpanan tingkat tabel, tetapi bukan sebagai bagian dari kebijakan penyimpanan tingkat database.
  • Saat ini dilakukan, data yang terserap tidak akan diterapkan pada tabel sumber, yang menghindari diperlukannya untuk mempertahankan data. Akibatnya, Recoverability hanya dapat diatur ke Disabled.
  • Konfigurasi seperti ini berguna terutama saat data diserap ke dalam tabel. Kebijakan pembaruan transaksional digunakan untuk mengubahnya dan mengarahkan output ke dalam tabel lain.

Objek kebijakan

Kebijakan penyimpanan mencakup properti berikut:

  • SoftDeletePeriod:
    • Rentang waktu data dijamin tetap tersedia untuk kueri. Periode diukur mulai dari saat data diserap.
    • Default ke 100 years.
    • Saat mengubah periode penghapusan sementara tabel atau database, nilai baru berlaku untuk data yang sudah ada dan yang baru.
  • Pemulihan:
    • Pemulihan data (Diaktifkan/Dinonaktifkan) setelah data dihapus.
    • Default ke Enabled.
    • Jika diatur ke Enabled, data akan dapat dipulihkan selama 14 hari setelah dihapus sementara.
    • Tidak dimungkinkan untuk mengonfigurasi periode pemulihan.

Perintah manajemen

Pengaturan default

Secara default, saat database atau tabel dibuat, keduanya tidak memiliki kebijakan penyimpanan yang ditentukan. Biasanya, database dibuat dan kemudian segera memiliki kebijakan penyimpanan yang diatur oleh pembuatnya sesuai dengan persyaratan umum. Saat Anda menjalankan .show perintah untuk kebijakan penyimpanan database atau tabel yang belum diatur kebijakannya, Policy akan muncul sebagai null.

Kebijakan penyimpanan default, dengan nilai default yang disebutkan di atas, dapat diterapkan menggunakan perintah berikut.

.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"

Perintah ini menghasilkan objek kebijakan berikut yang diterapkan ke database atau tabel.

{
  "SoftDeletePeriod": "36500.00:00:00", "Recoverability":"Enabled"
}

Menghapus kebijakan penyimpanan database atau tabel dapat dilakukan dengan menggunakan perintah berikut.

.delete database DatabaseName policy retention
.delete table TableName policy retention

Contoh

Untuk kluster yang memiliki database bernama MyDatabase, dengan tabel MyTable1, MyTable2, dan MySpecialTable.

Periode penghapusan sementara tujuh hari dan pemulihan dinonaktifkan

Atur semua tabel dalam database untuk memiliki periode penghapusan sementara tujuh hari dan pemulihan dinonaktifkan.

  • Opsi 1 (Disarankan): Atur kebijakan penyimpanan tingkat database, dan verifikasi bahwa tidak ada kebijakan tingkat tabel yang ditetapkan.

    .delete table MyTable1 policy retention        // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention        // optional, only if the table previously had its policy set
    .delete table MySpecialTable policy retention  // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
    .alter-merge materialized-view ViewName policy retention softdelete = 7d 
    
  • Opsi 2: Untuk setiap tabel, atur kebijakan penyimpanan tingkat tabel, dengan periode penghapusan sementara tujuh hari dan pemulihan dinonaktifkan.

    .alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 7d recoverability = disabled
    

Periode penghapusan sementara tujuh hari dan pemulihan diaktifkan

  • Atur tabel ke MyTable1 dan MyTable2 untuk memiliki periode penghapusan sementara tujuh hari dan pemulihan dinonaktifkan.

  • Atur ke MySpecialTable untuk memiliki periode penghapusan sementara 14 hari dan pemulihan diaktifkan.

  • Opsi 1 (Disarankan): Atur kebijakan penyimpanan tingkat database, dan atur kebijakan penyimpanan tingkat tabel.

    .delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
    
  • Opsi 2: Untuk setiap tabel, atur kebijakan penyimpanan tingkat tabel, dengan periode penghapusan sementara dan pemulihan yang relevan.

    .alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
    

Periode penghapusan sementara tujuh hari, dan MySpecialTable menyimpan datanya tanpa batas waktu

Atur tabel ke MyTable1 dan MyTable2 untuk memiliki periode penghapusan sementara tujuh hari, dan membuat MySpecialTable menyimpan datanya tanpa batas waktu.

  • Opsi 1: Atur kebijakan penyimpanan tingkat database, dan atur kebijakan penyimpanan tingkat tabel, dengan periode penghapusan sementara 100 tahun, kebijakan penyimpanan default, untuk MySpecialTable.

    .delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}" // this sets the default retention policy
    
  • Opsi 2: Untuk tabel MyTable1dan MyTable2, atur kebijakan penyimpanan tingkat tabel, dan verifikasi bahwa kebijakan tingkat database dan tingkat tabel untuk MySpecialTable tidak diatur.

    .delete database MyDatabase policy retention   // optional, only if the database previously had its policy set
    .delete table MySpecialTable policy retention   // optional, only if the table previously had its policy set
    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    
  • Opsi 3: Untuk tabel MyTable1 dan MyTable2, atur kebijakan penyimpanan tingkat tabel. Untuk tabel MySpecialTable, atur kebijakan penyimpanan tingkat tabel dengan periode penghapusan sementara 100 tahun, kebijakan penyimpanan default.

    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}"