Todos os produtos
Search
Central de documentação

MaxCompute:Gerenciar o ciclo de vida da tabela

Última atualização: Sep 18, 2026

Configure o ciclo de vida da tabela para liberar automaticamente dados inalterados, reduzindo custos de armazenamento enquanto mantém os dados atualizados.

Ciclo de vida

O MaxCompute libera automaticamente tabelas ou partições cujos dados permanecem inalterados além do ciclo de vida configurado. O sistema verifica diariamente se há dados expirados.

  • Se o LastModifiedTime de uma tabela não particionada exceder o ciclo de vida, o MaxCompute libera os dados e exclui a tabela.

  • Para tabelas particionadas, o MaxCompute libera partições individuais com base em seu LastModifiedTime. A tabela permanece após a liberação de sua última partição.

    Para excluir automaticamente a tabela após a liberação de sua última partição, use um destes métodos:

    Nota

    As configurações no nível da tabela têm precedência sobre as configurações no nível do projeto.

    • Configurações no nível do projeto

      -- Automatically delete the table after the last partition of the table is reclaimed.
      setproject odps.table.lifecycle.deletemeta.on.expiration=true;
      
      -- Retain the table by default after the last partition is reclaimed.
      setproject odps.table.lifecycle.deletemeta.on.expiration=false;
    • Configurações no nível da tabela

      --- Create a table and configure a lifecycle-related parameter to allow the table to be automatically deleted after the last partition of the table is reclaimed.
      CREATE TABLE <Table_Name>(id int, name string)
           partitioned BY (ds string)
           tblproperties ('lifecycle.deletemeta'='true')
           lifecycle  1;
      --- If a table exists, configure a lifecycle-related parameter to allow the table to be automatically deleted after the last partition of the table is reclaimed.
      ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='true');
      
      -- Retain the table by default after the last partition is reclaimed.
      ALTER TABLE <table_name> SET tblproperties('lifecycle.deletemeta'='false');
      

Observações de uso

  • As dependências de agendamento de tarefas não impedem a liberação de dados após a expiração do ciclo de vida.

  • O ciclo de vida se aplica a toda a tabela particionada. Não é possível configurar o ciclo de vida no nível da partição.

  • Os dados liberados permanecem na lixeira por um dia, por padrão. Depois disso, são excluídos permanentemente e não podem ser recuperados.

  • A liberação pode não ocorrer imediatamente após a expiração do ciclo de vida. O momento exato depende da disponibilidade do sistema.

  • Gravações, atualizações ou exclusões de dados atualizam o LastModifiedTime. Modificar o valor do ciclo de vida não atualiza o LastModifiedTime.

Configurar o ciclo de vida da tabela

Definir o ciclo de vida durante a criação da tabela

  • Sintaxe

    -- Create a table. 
     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>], ...)]
     -- Configure the shuffle and sort properties of a clustered table that you want to create. 
     [clustered BY | range clustered BY (<col_name> [, <col_name>, ...]) [sorted BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])] INTO <number_of_buckets> buckets] 
     -- Used only for external tables. 
     [stored by StorageHandler] 
     -- Used only for external tables. 
     [with serdeproperties (options)] 
     -- Used only for external tables. 
     [location <osslocation>] 
     -- Configure the lifecycle for the table.
     lifecycle <days>;
    
    -- Create a table based on an existing table and replicate the schema of the existing table. You can execute the CREATE TABLE statement to create a table based on an external table or an existing table of an external project that is used to implement the data lakehouse solution. 
    create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];
  • Parâmetros

    • table_name: obrigatório. O nome da tabela.

    • days: obrigatório. Duração do ciclo de vida como um número inteiro positivo. Unidade: dias.

      Nota

      Esta seção aborda apenas os parâmetros relacionados ao ciclo de vida. Para mais informações sobre os parâmetros de criação de uma tabela, consulte Create a table.

  • Exemplo

    -- Create the test_lifecycle table with the lifecycle of 100 days. 
    CREATE TABLE test_lifecycle (key string) lifecycle 100;

Configurar ou modificar o ciclo de vida de uma tabela existente

Execute a seguinte instrução para modificar o ciclo de vida de uma tabela existente.

  • Sintaxe

    ALTER TABLE <Table_Name> SET lifecycle <days>;
  • Parâmetros

    • table_name: obrigatório. O nome da tabela.

    • days: obrigatório. Nova duração do ciclo de vida como um número inteiro positivo. Unidade: dias.

  • Exemplo

    -- Change the lifecycle of the test_lifecycle table to 50 days. 
    ALTER TABLE test_lifecycle set lifecycle 50;

Desativar ou restaurar o ciclo de vida da tabela

  • Sintaxe

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

    • table_name: obrigatório. O nome da tabela.

    • pt_spec: opcional. A partição de destino. Para partições de vários níveis, especifique todas as colunas de chave de partição no formato partition_col1=col1_value1, partition_col2=col2_value1....

    • enable e disable: restaura ou desativa o ciclo de vida de uma tabela ou partição.

      Nota
      • Antes de restaurar o ciclo de vida, verifique o valor do ciclo de vida configurado para evitar a liberação não intencional de dados.

      • Desativar o ciclo de vida no nível da tabela substitui a ativação no nível da partição. Se o ciclo de vida da tabela estiver desativado, table disable lifecycle substitui pt_spec enable lifecycle.

      • Desativar o ciclo de vida preserva as configurações. Ainda é possível modificar os valores do ciclo de vida enquanto ele estiver desativado.

  • Exemplos

    • Exemplo 1: Desativar o ciclo de vida da tabela trans.

      ALTER TABLE trans disable lifecycle;
    • Exemplo 2: Desativar o ciclo de vida da partição dt='20141111' na tabela trans.

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