Configure o ciclo de vida da tabela para recuperar automaticamente dados inalterados. Isso reduz custos de armazenamento e mantém os dados atualizados.
Ciclo de vida
O MaxCompute recupera automaticamente tabelas ou partições cujos dados permanecem inalterados além do ciclo de vida configurado. O sistema verifica diariamente a existência de dados expirados.
Se o LastModifiedTime de uma tabela não particionada exceder o ciclo de vida, o MaxCompute recuperará os dados e excluirá a tabela.
-
Em tabelas particionadas, o MaxCompute recupera partições individuais com base nos respectivos valores de LastModifiedTime. A tabela permanece mesmo após a recuperação da última partição.
Para excluir automaticamente a tabela após a recuperação da última partição, use um dos métodos abaixo:
NotaAs 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
Dependências de agendamento de tarefas não impedem a recuperação de dados após a expiração do ciclo de vida.
O ciclo de vida aplica-se à tabela particionada inteira. Não é possível configurar o ciclo de vida no nível da partição.
Por padrão, os dados recuperados ficam retidos na lixeira por um dia. Depois desse período, são excluídos permanentemente e não podem ser recuperados.
A recuperação pode não ocorrer imediatamente após a expiração do ciclo de vida, pois depende da disponibilidade do sistema.
Operações de escrita, atualização ou exclusão de dados modificam o LastModifiedTime. Alterar o valor do ciclo de vida não modifica esse campo.
Configure o ciclo de vida da tabela
Defina 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. Nome da tabela.
-
days: obrigatório. Duração do ciclo de vida como um número inteiro positivo. Unidade: dias.
NotaEsta seção aborda apenas parâmetros relacionados ao ciclo de vida. Para mais informações sobre os parâmetros de criação de tabela, consulte Crie uma tabela.
-
Exemplo
-- Create the test_lifecycle table with the lifecycle of 100 days. CREATE TABLE test_lifecycle (key string) lifecycle 100;
Configure ou modifique o ciclo de vida de uma tabela existente
Execute a instrução a seguir para modificar o ciclo de vida de uma tabela existente.
-
Sintaxe
ALTER TABLE <Table_Name> SET lifecycle <days>; -
Parâmetros
table_name: obrigatório. 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; -
Sintaxe
ALTER TABLE <table_name> [<pt_spec>] {enable|disable} lifecycle; -
Parâmetros
table_name: obrigatório. Nome da tabela.
pt_spec: opcional. Partição de destino. Para partições multinível, especifique todas as colunas de chave de partição no formato
partition_col1=col1_value1, partition_col2=col2_value1....-
enable e disable: restauram ou desativam o ciclo de vida de uma tabela ou partição.
NotaAntes de restaurar o ciclo de vida, verifique o valor configurado para evitar recuperação indesejada de dados.
A desativação 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 lifecycleprevalece sobrept_spec enable lifecycle.Desativar o ciclo de vida preserva as configurações. Você ainda pode modificar os valores do ciclo de vida enquanto ele estiver desativado.
-
-
Exemplos
-
Exemplo 1: Desative o ciclo de vida da tabela
trans.ALTER TABLE trans disable lifecycle; -
Exemplo 2: Desative o ciclo de vida da partição dt='20141111' na tabela
trans.ALTER TABLE trans partition (dt='20141111') disable lifecycle;
-
-