修改表的生命週期

MaxCompute提供資料生命週期管理功能,以方便您釋放儲存空間,簡化回收資料的流程。

修改表的生命週期屬性的文法格式,如下所示:
ALTER TABLE table_name SET lifecycle days;
说明
  • days參數為生命週期時間,只接受正整數,單位為天。
  • 如果表table_name是非分區表,自最後一次資料被修改開始計算,經過days天后資料仍未被改動,則此表無需您幹預,將會被MaxCompute自動回收(類似drop table操作)。
  • 在MaxCompute中,每當表的資料被修改後,表的LastDataModifiedTime將會被更新,因此,MaxCompute會根據每張表的LastDataModifiedTime以及lifecycle的設定來判斷是否要回收此表。
  • 如果table_name是分區表,則根據各分區的LastDataModifiedTime判斷該分區是否該被回收。
  • 不同於非分區表,分區表的最後一個分區被回收後,該表不會被刪除。
  • 生命週期只能設定到表層級,不能再分區級設定生命週期。
  • 建立表時即可指定生命週期。
樣本如下:
create table test_lifecycle(key string) lifecycle 100;
 -- 建立test_lifecycle表,生命週期為100天。
 alter table test_lifecycle set lifecycle 50;
 -- 修改test_lifecycle表,將生命週期設為50天。

禁止生命週期

某些情況下,部分特定的分區不希望被生命週期功能自動回收掉,比如一個月的月初或雙十一期間的資料,此時您可以禁止該分區被生命週期功能回收。

禁止生命週期的文法格式,如下所示:
ALTER TABLE table_name [partition_spec] ENABLE|DISABLE LIFECYCLE;
樣本如下:
ALTER TABLE trans PARTITION(dt='20141111') DISABLE LIFECYCLE;