Configurez le cycle de vie des tables pour récupérer automatiquement les données inchangées. Cette opération réduit les coûts de stockage tout en garantissant l'actualité des données.
Cycle de vie
MaxCompute récupère automatiquement les tables ou partitions dont les données restent inchangées au-delà du cycle de vie configuré. Le système analyse quotidiennement les données expirées.
Si l'attribut LastModifiedTime d'une table non partitionnée dépasse son cycle de vie, MaxCompute récupère les données et supprime la table.
-
Pour les tables partitionnées, MaxCompute récupère les partitions individuelles en fonction de leur attribut LastModifiedTime. La table subsiste après la récupération de sa dernière partition.
Pour supprimer automatiquement la table après la récupération de sa dernière partition, utilisez l'une des méthodes suivantes :
RemarqueLes paramètres au niveau de la table sont prioritaires sur ceux définis au niveau du projet.
-
Paramètres au niveau du projet
-- 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; -
Paramètres au niveau de la table
--- 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');
-
Remarques d'utilisation
Les dépendances de planification des tâches n'empêchent pas la récupération des données à l'expiration du cycle de vie.
Le cycle de vie s'applique à l'ensemble de la table partitionnée. Il est impossible de le configurer au niveau de la partition.
Les données récupérées sont conservées dans la corbeille pendant un jour par défaut, puis supprimées définitivement sans possibilité de récupération.
La récupération peut ne pas se produire immédiatement après l'expiration du cycle de vie. Le moment exact dépend de la disponibilité du système.
Les écritures, mises à jour ou suppressions de données mettent à jour l'attribut LastModifiedTime. La modification de la valeur du cycle de vie n'a pas cet effet.
Configurer le cycle de vie d'une table
Définir le cycle de vie lors de la création de la table
-
Syntaxe
-- 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>]; -
Paramètres
table_name : obligatoire. Nom de la table.
-
days : obligatoire. Durée du cycle de vie sous forme d'entier positif. Unité : jours.
RemarqueCette section couvre uniquement les paramètres liés au cycle de vie. Pour plus d'informations sur les paramètres de création de table, consultez Créer une table.
-
Exemple
-- Create the test_lifecycle table with the lifecycle of 100 days. CREATE TABLE test_lifecycle (key string) lifecycle 100;
Configurer ou modifier le cycle de vie d'une table existante
Exécutez l'instruction suivante pour modifier le cycle de vie d'une table existante.
-
Syntaxe
ALTER TABLE <Table_Name> SET lifecycle <days>; -
Paramètres
table_name : obligatoire. Nom de la table.
days : obligatoire. Nouvelle durée du cycle de vie sous forme d'entier positif. Unité : jours.
-
Exemple
-- Change the lifecycle of the test_lifecycle table to 50 days. ALTER TABLE test_lifecycle set lifecycle 50;
Désactiver ou restaurer le cycle de vie d'une table
-
Syntaxe
ALTER TABLE <table_name> [<pt_spec>] {enable|disable} lifecycle; -
Paramètres
table_name : obligatoire. Nom de la table.
pt_spec : facultatif. Partition cible. Pour les partitions multiniveaux, spécifiez toutes les colonnes de clé de partition au format
partition_col1=col1_value1, partition_col2=col2_value1....-
enable et disable : restaure ou désactive le cycle de vie pour une table ou une partition.
RemarqueAvant de restaurer le cycle de vie, vérifiez la valeur configurée afin d'éviter toute récupération involontaire de données.
La désactivation au niveau de la table est prioritaire sur l'activation au niveau de la partition. Si le cycle de vie de la table est désactivé,
table disable lifecycleest prioritaire surpt_spec enable lifecycle.La désactivation du cycle de vie conserve les paramètres. Vous pouvez toujours modifier les valeurs du cycle de vie lorsqu'il est désactivé.
-
Exemples
-
Exemple 1 : Désactivez le cycle de vie pour la table
trans.ALTER TABLE trans disable lifecycle; -
Exemple 2 : Désactivez le cycle de vie pour la partition dt='20141111' de la table
trans.ALTER TABLE trans partition (dt='20141111') disable lifecycle;
-