Berdasarkan kebutuhan bisnis dan frekuensi penggunaan data, Anda dapat mengatur lifecycle tabel untuk mengaktifkan reclaim data secara otomatis. Pengaturan lifecycle yang tepat memungkinkan Anda mengelola periode penyimpanan data secara fleksibel, memastikan ketepatan waktu dan validitas data, sekaligus mengoptimalkan penggunaan sumber daya dan biaya.
Siklus Hidup
Lifecycle (siklus hidup) tabel MaxCompute mengacu pada periode waktu tertentu yang dihitung sejak waktu terakhir data tabel (partisi) diperbarui. Jika dalam periode tersebut tidak terjadi perubahan, tabel (partisi) tersebut akan secara otomatis direclaim oleh MaxCompute. Proses reclaim lifecycle dijalankan setiap hari secara terjadwal dan memindai seluruh partisi.
-
Untuk tabel non-partisi, ketika LastModifiedTime melebihi durasi lifecycle yang ditetapkan, MaxCompute akan mereclaim data tersebut dan menghapus tabel yang bersangkutan.
-
Untuk tabel partisi, MaxCompute mengevaluasi masing-masing partisi berdasarkan LastModifiedTime-nya untuk menentukan apakah partisi tersebut perlu direclaim. Setelah partisi terakhir direclaim, tabel tersebut tidak akan dihapus.
Jika Anda ingin tabel tersebut secara otomatis dihapus setelah partisi terakhir direclaim, Anda dapat mengaktifkan pengaturan berikut dengan dua cara:
CatatanJika terjadi konflik antara pengaturan tingkat Proyek dan tingkat tabel, pengaturan tingkat tabel akan diprioritaskan.
-
Tingkat Proyek
-- Hapus tabel secara otomatis setelah partisi terakhir direclaim setproject odps.table.lifecycle.deletemeta.on.expiration=true; -- Pertahankan tabel secara default setelah partisi terakhir direclaim setproject odps.table.lifecycle.deletemeta.on.expiration=false; -
Tingkat tabel
--- Buat tabel baru: aktifkan penghapusan otomatis setelah partisi terakhir direclaim CREATE TABLE <Table_Name>(id int, name string) partitioned BY (ds string) tblproperties ('lifecycle.deletemeta'='true') lifecycle 1; --- Tabel yang sudah ada: aktifkan penghapusan otomatis setelah partisi terakhir direclaim ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='true'); -- Pertahankan tabel secara default setelah partisi terakhir direclaim ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='false');
-
Perintah operasi lifecycle adalah sebagai berikut.
|
Tipe |
Fungsi |
Peran |
Titik Masuk Operasi |
|
Anda dapat mengatur lifecycle saat membuat tabel, atau mengatur/mengubah durasi lifecycle pada tabel yang sudah ada. |
Pengguna yang memiliki izin Alter pada tabel |
Perintah dalam dokumen ini dapat dijalankan melalui platform alat berikut: |
|
|
Nonaktifkan atau aktifkan kembali lifecycle untuk tabel atau partisi tertentu. |
Catatan Penting
-
Dependency penjadwalan tugas tidak memengaruhi reclaim data berdasarkan lifecycle.
-
Saat mengatur lifecycle untuk tabel partisi, pengaturan tersebut berlaku untuk seluruh tabel beserta semua partisinya. Pengaturan atau modifikasi durasi lifecycle secara individual pada tingkat partisi tidak didukung.
-
Setelah data direclaim, data tersebut disimpan di Recycle Bin selama satu hari secara default. Setelah satu hari, data akan dihapus secara permanen dan tidak dapat dipulihkan.
-
Lifecycle terutama menyediakan fungsi reclaim berkala untuk tabel atau partisi. Proses reclaim dijalankan setiap hari secara tidak tetap, tergantung beban layanan. Oleh karena itu, tidak dapat dijamin bahwa tabel atau partisi akan langsung direclaim segera setelah masa lifecycle-nya berakhir.
-
Operasi penulisan, pembaruan, dan penghapusan data akan memperbarui LastModifiedTime; sedangkan modifikasi lifecycle tidak memengaruhi LastModifiedTime.
-
Jika tabel atau partisi menghilang secara tak terduga, gunakan metode berikut untuk memeriksa apakah penyebabnya adalah reclaim lifecycle:
-
Pada halaman SQL Analysis di Konsol MaxCompute, jalankan perintah
desc extended <project_name>.<table_name>;. Periksa properti Lifecycle dan timestamp LastModifiedTime pada output. Jika selang waktu sejak LastModifiedTime lebih besar dari jumlah hari yang ditentukan dalam Lifecycle, berarti tabel tersebut telah direclaim oleh kebijakan lifecycle. -
Anda juga dapat mengonfirmasi reclaim tersebut menggunakan ActionTrail. Masuk ke Konsol ActionTrail. Pada halaman Event history, filter event berdasarkan nama layanan cloud MaxCompute. Cari catatan operasi dengan nama event DropTable dan principal
maxcompute.aliyuncs.com. Jika catatan tersebut ada, ini menunjukkan bahwa tabel tersebut dihapus secara otomatis oleh mekanisme reclaim lifecycle sistem. Untuk informasi lebih lanjut tentang penggunaan ActionTrail, lihat log audit.
-
Setel lifecycle
Buat tabel
-
Format perintah
-- Buat tabel baru. CREATE [external] TABLE [if not exists] <table_name> [(<col_name> <data_type> [default <default_value>] [comment <col_comment>], ...)] [comment <table_comment>] [partitioned BY (<col_name> <data_type> [comment <col_comment>], ...)] -- Untuk mengatur properti Shuffle dan Sort saat membuat clustered table. [clustered BY | range clustered BY (<col_name> [, <col_name>, ...]) [sorted BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])] INTO <number_of_buckets> buckets] -- Hanya untuk external table. [stored by StorageHandler] -- Hanya untuk external table. [with serdeproperties (options)] -- Hanya untuk external table. [location <osslocation>] -- lifecycle lifecycle <days>; -- Buat tabel baru dengan struktur yang sama seperti tabel yang sudah ada tanpa menyalin data, mendukung external table dan tabel dalam proyek eksternal Lakehouse. create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>]; -
Penjelasan parameter
-
table_name: Wajib diisi. Nama tabel yang akan diatur lifecycle-nya.
-
days: Wajib diisi. Durasi lifecycle setelah dimodifikasi, hanya boleh berupa bilangan bulat positif, dalam satuan hari.
CatatanBagian ini hanya menjelaskan parameter yang terkait dengan pengaturan lifecycle. Untuk penjelasan lengkap parameter pembuatan tabel lainnya, lihat Buat tabel.
-
-
Contoh penggunaan
-- Buat tabel test_lifecycle baru dengan lifecycle 100 hari. CREATE TABLE test_lifecycle (key string) lifecycle 100;
Tabel yang sudah ada
Anda dapat mengatur atau mengubah durasi lifecycle pada tabel yang sudah ada dengan cara berikut.
-
Format perintah
ALTER TABLE <Table_Name> SET lifecycle <days>; -
Penjelasan parameter
-
table_name: Wajib diisi. Nama tabel yang lifecycle-nya akan diubah.
-
days: Wajib diisi. Durasi lifecycle setelah dimodifikasi, hanya boleh berupa bilangan bulat positif, dalam satuan hari.
-
-
Contoh penggunaan
-- Ubah tabel test_lifecycle, atur lifecycle menjadi 50 hari. ALTER TABLE test_lifecycle set lifecycle 50;
Nonaktifkan atau aktifkan kembali lifecycle
-
Format perintah
ALTER TABLE <table_name> [<pt_spec>] {enable|disable} lifecycle; -
Penjelasan parameter
-
table_name: Wajib diisi. Nama tabel yang lifecycle-nya akan dinonaktifkan atau diaktifkan kembali.
-
pt_spec: Opsional. Informasi partisi tabel yang lifecycle-nya akan dinonaktifkan atau diaktifkan kembali. Untuk tabel dengan partisi multi-level, Anda harus menentukan semua nilai partisi. Formatnya adalah
partition_col1=col1_value1, partition_col2=col2_value1.... -
enable dan disable: Aktifkan kembali atau nonaktifkan fitur lifecycle untuk tabel (partisi).
Catatan-
Saat mengaktifkan kembali lifecycle untuk tabel atau partisi, durasi lifecycle yang sebelumnya telah diatur akan diterapkan secara default. Pastikan durasi tersebut sesuai sebelum mengaktifkan kembali, agar data tidak direclaim akibat konfigurasi lama yang tidak diinginkan.
-
Menonaktifkan lifecycle pada tingkat tabel memiliki prioritas lebih tinggi daripada mengaktifkan kembali lifecycle pada tingkat partisi. Misalnya, jika
table disable lifecycletelah diatur, maka pengaturanpt_spec enable lifecycletidak akan berlaku. -
Meskipun fitur lifecycle dinonaktifkan, MaxCompute tetap menyimpan konfigurasi lifecycle yang sebelumnya diatur dan memungkinkan Anda memodifikasinya kapan saja.
-
-
-
Contoh penggunaan
-
Contoh 1: Nonaktifkan fitur lifecycle untuk tabel
trans.ALTER TABLE trans disable lifecycle; -
Contoh 2: Nonaktifkan fitur lifecycle untuk partisi dengan tanggal 20141111 pada tabel
trans.ALTER TABLE trans partition (dt='20141111') disable lifecycle;
-