All Products
Search
Document Center

MaxCompute:Kelola lifecycle tabel

Last Updated:Sep 19, 2026

Konfigurasikan lifecycle tabel untuk secara otomatis membersihkan data yang tidak berubah, sehingga mengurangi biaya penyimpanan sekaligus menjaga kesegaran data.

Lifecycle

MaxCompute secara otomatis membersihkan tabel atau partisi yang datanya tidak berubah melebihi durasi lifecycle yang dikonfigurasi. Sistem melakukan pemindaian data kedaluwarsa setiap hari.

  • Jika LastModifiedTime pada tabel non-partisi melebihi nilai lifecycle-nya, MaxCompute akan membersihkan datanya dan menghapus tabel tersebut.

  • Untuk tabel partisi, MaxCompute membersihkan partisi satu per satu berdasarkan LastModifiedTime-nya. Tabel tetap ada meskipun semua partisinya telah dibersihkan.

    Untuk menghapus tabel secara otomatis setelah partisi terakhirnya dibersihkan, gunakan salah satu metode berikut:

    Catatan

    Pengaturan tingkat tabel memiliki prioritas lebih tinggi daripada pengaturan tingkat proyek.

    • Pengaturan tingkat proyek

      -- Menghapus tabel secara otomatis setelah partisi terakhir tabel tersebut dibersihkan.
      setproject odps.table.lifecycle.deletemeta.on.expiration=true;
      
      -- Secara default mempertahankan tabel setelah partisi terakhirnya dibersihkan.
      setproject odps.table.lifecycle.deletemeta.on.expiration=false;
    • Pengaturan tingkat tabel

      --- Membuat tabel dan mengonfigurasi parameter terkait lifecycle agar tabel dihapus secara otomatis setelah partisi terakhirnya dibersihkan.
      CREATE TABLE <Table_Name>(id int, name string)
           partitioned BY (ds string)
           tblproperties ('lifecycle.deletemeta'='true')
           lifecycle  1;
      --- Jika tabel sudah ada, konfigurasikan parameter terkait lifecycle agar tabel dihapus secara otomatis setelah partisi terakhirnya dibersihkan.
      ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='true');
      
      -- Secara default mempertahankan tabel setelah partisi terakhirnya dibersihkan.
      ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='false');
      

Catatan penggunaan

  • Ketergantungan penjadwalan tugas tidak mencegah pembersihan data setelah masa lifecycle berakhir.

  • Lifecycle berlaku untuk seluruh tabel partisi. Anda tidak dapat mengonfigurasi lifecycle pada tingkat partisi.

  • Data yang dibersihkan disimpan di recycle bin selama satu hari secara default, lalu dihapus permanen dan tidak dapat dipulihkan.

  • Pembersihan mungkin tidak terjadi segera setelah masa lifecycle berakhir. Waktu pelaksanaannya bergantung pada ketersediaan sistem.

  • Operasi penulisan, pembaruan, atau penghapusan data akan memperbarui LastModifiedTime. Mengubah nilai lifecycle tidak memperbarui waktu tersebut.

Konfigurasi lifecycle tabel

Tetapkan lifecycle saat pembuatan tabel

  • Sintaks

    -- Membuat tabel. 
     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>], ...)]
     -- Mengonfigurasi properti shuffle dan sort untuk tabel terkluster yang ingin Anda buat. 
     [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 digunakan untuk tabel eksternal. 
     [stored by StorageHandler] 
     -- Hanya digunakan untuk tabel eksternal. 
     [with serdeproperties (options)] 
     -- Hanya digunakan untuk tabel eksternal. 
     [location <osslocation>] 
     -- Mengonfigurasi lifecycle untuk tabel.
     lifecycle <days>;
    
    -- Membuat tabel berdasarkan tabel yang sudah ada dan mereplikasi skemanya. Anda dapat menjalankan pernyataan CREATE TABLE untuk membuat tabel berdasarkan tabel eksternal atau tabel yang sudah ada dari proyek eksternal yang digunakan dalam solusi danau data terpadu. 
    create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];
  • Parameter

    • table_name: wajib. Nama tabel.

    • days: wajib. Durasi lifecycle dalam bentuk bilangan bulat positif. Satuan: hari.

      Catatan

      Bagian ini hanya mencakup parameter yang terkait dengan lifecycle. Untuk informasi lebih lanjut tentang parameter pembuatan tabel, lihat Buat tabel.

  • Contoh

    -- Membuat tabel test_lifecycle dengan lifecycle 100 hari. 
    CREATE TABLE test_lifecycle (key string) lifecycle 100;

Konfigurasi atau modifikasi lifecycle tabel yang sudah ada

Jalankan pernyataan berikut untuk mengubah lifecycle tabel yang sudah ada.

  • Sintaks

    ALTER TABLE <Table_Name> SET lifecycle <days>;
  • Parameter

    • table_name: wajib. Nama tabel.

    • days: wajib. Durasi lifecycle baru dalam bentuk bilangan bulat positif. Satuan: hari.

  • Contoh

    -- Mengubah lifecycle tabel test_lifecycle menjadi 50 hari. 
    ALTER TABLE test_lifecycle set lifecycle 50;

Nonaktifkan atau pulihkan lifecycle tabel

  • Sintaks

    ALTER TABLE <table_name> [<pt_spec>] {enable|disable} lifecycle;
  • Parameter

    • table_name: wajib. Nama tabel.

    • pt_spec: opsional. Partisi target. Untuk partisi multi-level, tentukan semua kolom kunci partisi dalam format partition_col1=col1_value1, partition_col2=col2_value1....

    • enable dan disable: memulihkan atau menonaktifkan lifecycle untuk tabel atau partisi.

      Catatan
      • Sebelum memulihkan lifecycle, pastikan nilai lifecycle yang dikonfigurasi untuk mencegah pembersihan data yang tidak diinginkan.

      • Penonaktifan lifecycle pada tingkat tabel mengesampingkan pengaktifan pada tingkat partisi. Jika lifecycle tabel dinonaktifkan, table disable lifecycle mengesampingkan pt_spec enable lifecycle.

      • Menonaktifkan lifecycle tidak menghapus pengaturan yang ada. Anda tetap dapat mengubah nilai lifecycle meskipun dalam keadaan dinonaktifkan.

  • Contoh

    • Contoh 1: Nonaktifkan lifecycle untuk tabel trans.

      ALTER TABLE trans disable lifecycle;
    • Contoh 2: Nonaktifkan lifecycle untuk partisi dt='20141111' pada tabel trans.

      ALTER TABLE trans partition (dt='20141111') disable lifecycle;