全部产品
Search
文档中心

MaxCompute:Operasi Pengelolaan Siklus Hidup

更新时间:Jul 06, 2025

Anda dapat mengonfigurasi siklus hidup untuk sebuah tabel berdasarkan kebutuhan bisnis dan frekuensi penggunaan data guna melakukan reklamasi data secara otomatis. Konfigurasi yang tepat dari siklus hidup memungkinkan Anda mengelola periode penyimpanan data secara fleksibel, memastikan ketepatan waktu dan validitas data, serta meminimalkan penggunaan sumber daya dan biaya.

Siklus Hidup

Jika data dalam sebuah tabel atau partisi tidak berubah setelah periode tertentu sejak pembaruan terakhir, tabel atau partisi tersebut akan secara otomatis direklamasi oleh MaxCompute. Siklus hidup menentukan periode waktu ini. Pemindaian tabel berbasis siklus hidup dilakukan pada waktu yang dijadwalkan setiap hari untuk memindai semua partisi dari sebuah tabel.

  • Jika nilai parameter LastModifiedTime melebihi siklus hidup yang ditentukan untuk tabel non-partisi, MaxCompute akan mereklamasi data tabel tersebut dan menghapus tabel.

  • Untuk tabel berpartisi, MaxCompute menentukan apakah akan mereklamasi data partisi berdasarkan nilai parameter LastModifiedTime yang dikonfigurasikan untuk setiap partisi tabel. Ketika partisi terakhir direklamasi, tabel tidak akan dihapus.

    Jika Anda ingin menghapus tabel secara otomatis setelah partisi terakhir direklamasi, Anda dapat menggunakan salah satu metode berikut:

    Catatan

    Jika pengaturan tingkat proyek dan tingkat tabel bertentangan, pengaturan tingkat tabel yang akan didahulukan.

    • Pengaturan tingkat proyek

      -- Secara otomatis menghapus tabel setelah partisi terakhir dari tabel direklamasi.
      setproject odps.table.lifecycle.deletemeta.on.expiration=true;
      
      -- Secara default, tetap pertahankan tabel setelah partisi terakhir direklamasi.
      setproject odps.table.lifecycle.deletemeta.on.expiration=false;
    • Pengaturan tingkat tabel

      --- Buat tabel dan konfigurasikan parameter terkait siklus hidup untuk mengizinkan tabel dihapus secara otomatis setelah partisi terakhir dari tabel direklamasi.
      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 siklus hidup untuk mengizinkan tabel dihapus secara otomatis setelah partisi terakhir dari tabel direklamasi.
      ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='true');
      
      -- Secara default, tetap pertahankan tabel setelah partisi terakhir direklamasi.
      ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='false');
      

Tabel berikut menjelaskan operasi terkait siklus hidup.

Operasi

Deskripsi

Peran

Platform

Konfigurasikan siklus hidup untuk sebuah tabel

Mengonfigurasi siklus hidup untuk sebuah tabel saat Anda membuat tabel atau mengonfigurasi atau memodifikasi siklus hidup untuk tabel yang sudah ada.

Pengguna yang memiliki izin Alter pada tabel

Anda dapat mengeksekusi pernyataan pada platform berikut:

Nonaktifkan atau pulihkan siklus hidup

Menonaktifkan atau memulihkan siklus hidup yang dikonfigurasikan untuk tabel atau partisi tertentu.

Perhatian

  • Ketergantungan penjadwalan tugas tidak memengaruhi reklamasi data tabel ketika siklus hidup tabel telah berakhir.

  • Jika Anda mengonfigurasi siklus hidup untuk tabel berpartisi, siklus hidup berlaku untuk seluruh tabel, termasuk semua partisinya. Anda tidak dapat mengonfigurasi atau memodifikasi siklus hidup pada tingkat partisi.

  • Setelah data direklamasi, data tersebut disimpan di tempat sampah selama satu hari secara default. Data akan dihapus secara permanen setelah satu hari dan tidak dapat dipulihkan.

  • Fitur siklus hidup memungkinkan MaxCompute secara berkala mereklamasi tabel atau partisi. Ketersediaan sistem menentukan apakah MaxCompute dapat segera mereklamasi tabel atau partisi ketika periode setelah waktu yang ditentukan oleh LastModifiedTime melebihi siklus hidup tabel atau partisi. Oleh karena itu, MaxCompute tidak selalu dapat segera mereklamasi tabel atau partisi setelah siklus hidup berakhir.

  • Ketika data ditulis, diperbarui, atau dihapus, nilai parameter LastModifiedTime diperbarui. Saat siklus hidup dimodifikasi, nilai parameter LastModifiedTime tidak berubah.

Konfigurasikan siklus hidup untuk sebuah tabel

Konfigurasikan siklus hidup untuk sebuah tabel saat Anda membuat tabel

  • Sintaks

    -- Buat 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>], ...)]
     -- Konfigurasikan properti shuffle dan sort dari 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] 
     -- Digunakan hanya untuk tabel eksternal. 
     [stored by StorageHandler] 
     -- Digunakan hanya untuk tabel eksternal. 
     [with serdeproperties (options)] 
     -- Digunakan hanya untuk tabel eksternal. 
     [location <osslocation>] 
     -- Konfigurasikan siklus hidup untuk tabel.
     lifecycle <days>;
    
    -- Buat tabel berdasarkan tabel yang ada dan replikasi skema tabel yang ada. Anda dapat mengeksekusi pernyataan CREATE TABLE untuk membuat tabel berdasarkan tabel eksternal atau tabel yang ada dari proyek eksternal yang digunakan untuk mengimplementasikan solusi data lakehouse. 
    create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];
  • Parameter

    • table_name: wajib. Nama tabel yang ingin Anda konfigurasikan siklus hidupnya.

    • days: wajib. Siklus hidup setelah dimodifikasi. Nilainya harus bilangan bulat positif. Satuan: hari.

      Catatan

      Bagian sebelumnya hanya menjelaskan parameter terkait siklus hidup. Untuk informasi lebih lanjut tentang parameter untuk membuat tabel, lihat Buat tabel.

  • Contoh

    -- Buat tabel test_lifecycle dengan siklus hidup 100 hari. 
    CREATE TABLE test_lifecycle (key string) lifecycle 100;

Konfigurasikan atau modifikasi siklus hidup tabel yang sudah ada

Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi atau memodifikasi siklus hidup untuk tabel yang sudah ada.

  • Sintaks

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

    • table_name: wajib. Nama tabel yang ingin Anda modifikasi siklus hidupnya.

    • days: wajib. Siklus hidup setelah dimodifikasi. Nilainya harus bilangan bulat positif. Satuan: hari.

  • Contoh

    -- Ubah siklus hidup tabel test_lifecycle menjadi 50 hari. 
    ALTER TABLE test_lifecycle set lifecycle 50;

Nonaktifkan atau pulihkan siklus hidup untuk sebuah tabel

  • Sintaks

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

    • table_name: wajib. Nama tabel yang ingin Anda nonaktifkan atau pulihkan siklus hidupnya.

    • pt_spec: opsional. Partisi tabel yang ingin Anda nonaktifkan atau pulihkan siklus hidupnya. Jika sebuah tabel memiliki partisi multi-level, Anda harus menentukan nilai dari semua kolom kunci partisi. Nilai parameter ini dalam format partition_col1=col1_value1, partition_col2=col2_value1....

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

      Catatan
      • Anda dapat menerapkan siklus hidup default untuk tabel atau partisi setelah Anda memulihkan siklus hidup untuk tabel atau partisi tersebut. Anda harus mempelajari siklus hidup yang dikonfigurasikan sebelum Anda memulihkan siklus hidup. Ini mencegah data dari kesalahan reklamasi akibat penggunaan pengaturan sebelumnya.

      • Pengaturan menonaktifkan siklus hidup untuk tabel mendahului pengaturan memulihkan siklus hidup untuk partisi. Sebagai contoh, jika Anda mengonfigurasi table disable lifecycle, konfigurasi pt_spec enable lifecycle tidak akan berlaku.

      • Setelah Anda menonaktifkan siklus hidup untuk tabel, MaxCompute masih mencatat pengaturan siklus hidup sebelumnya dan mengizinkan Anda memodifikasi pengaturan siklus hidup.

  • Contoh

    • Contoh 1: Nonaktifkan siklus hidup untuk tabel trans.

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

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