Tous les produits
Search
Centre de documentation

Lindorm:ALTER TABLE

Dernière mise à jour :Aug 11, 2026

L'instruction ALTER TABLE modifie le schéma d'une table, par exemple en ajoutant ou en supprimant des colonnes et en définissant des attributs de table. Les clauses prises en charge diffèrent entre LindormTable et LindormTSDB.

Moteurs et versions

L'instruction ALTER TABLE s'applique à LindormTable et LindormTSDB. Aucune restriction de version ne s'applique.

Remarques relatives à l'utilisation

L'opération ALTER TABLE n'entraîne pas de verrouillage. La table reste lisible et accessible en écriture tout au long de l'opération. Toutefois, vous pouvez rencontrer des erreurs de délai d'expiration ou de brèves fluctuations de performances pour les raisons suivantes :

  • Lors d'une opération DDL, chaque shard est brièvement fermé puis rouvert pour recharger les métadonnées. Cette étape prend généralement entre 10 et plusieurs centaines de millisecondes. Si une requête cible un shard en cours de réouverture, vous pouvez constater un léger retard ou une brève fluctuation des performances. Nous vous recommandons d'effectuer les opérations DDL pendant les heures creuses.

  • Le résultat d'une opération DDL n'est renvoyé qu'après l'application de la modification à tous les shards. Pour les tables volumineuses, cela peut provoquer un délai d'expiration côté client si le délai configuré est court. L'opération continue de s'exécuter sur le serveur jusqu'à son achèvement.

Syntaxe

alter_table_statement   ::= ALTER TABLE table_name alter_table_instruction

alter_table_instruction ::=   
  add_column_list
  | DROP COLUMN [ IF EXISTS ] column_name
  | SET table_options
  | COMPACT (idcName)?
   
add_column_list ::= ADD [COLUMN] column_def ( ',' ADD [COLUMN] column_def )*
column_def ::= column_name type [TAG]

Différences entre les moteurs

L'instruction ALTER TABLE diffère entre LindormTable et LindormTSDB. Le tableau suivant compare les clauses prises en charge.

Clause

LindormTable

LindormTSDB

ADD COLUMN

Prise en charge

Prise en charge

COMPACT

Prise en charge

Remarque

Pris en charge dans LindormTable 2.3.4 et versions ultérieures.

Non pris en charge

DROP COLUMN

Prise en charge

Remarque

Pris en charge dans LindormTable 2.6.6 et versions ultérieures.

Non pris en charge

SET table_options

Prise en charge

Non pris en charge

Clauses

ADD COLUMN

LindormTable et LindormTSDB prennent tous deux en charge la clause ADD COLUMN.

Les règles suivantes s'appliquent lors de l'ajout de colonnes :

  • Vous ne pouvez pas ajouter de colonne en tant que clé primaire.

  • Pour LindormTSDB, vous pouvez uniquement ajouter une colonne de tag ou une colonne de champ. Vous ne pouvez pas ajouter de colonne d'horodatage.

DROP COLUMN

La clause DROP COLUMN est disponible uniquement dans LindormTable 2.6.6 et versions ultérieures.

Remarque

Si vous ne pouvez pas mettre à niveau votre instance vers la version 2.6.6 ou ultérieure depuis la console, contactez l'assistance technique Lindorm (ID DingTalk : s0s3eg3).

L'opération DROP COLUMN est asynchrone. Une fois l'instruction ALTER TABLE exécutée avec succès, le système supprime immédiatement la colonne cible, mais les données de la colonne ne sont nettoyées qu'à l'issue d'une opération COMPACT. Pour accélérer le nettoyage des données, exécutez manuellement les opérations FLUSH et COMPACT. Vous ne pouvez pas ajouter de colonne portant le même nom tant que les données ne sont pas entièrement nettoyées. Pour plus d'informations, consultez la rubrique FAQ.

SET table_options

Seul LindormTable prend en charge la clause SET table_options.

Pour obtenir la liste des attributs de table, consultez la rubrique Attributs de table. Utilisez l'instruction SHOW TABLE VARIABLES pour vérifier que les attributs de table ont été définis avec succès. Pour plus d'informations, consultez la rubrique SHOW TABLE VARIABLES.

Important

Lors de la modification des attributs MUTABILITY et CONSISTENCY, tenez compte des points suivants :

  • Avant de créer un index, vous pouvez modifier à la fois MUTABILITY et CONSISTENCY.

  • Après la création d'un index :

    • Vous ne pouvez pas modifier MUTABILITY.

    • Vous pouvez faire passer la valeur de CONSISTENCY de eventual à strong, mais vous ne pouvez pas la faire passer de strong à eventual.

Pour un exemple, consultez la section Activer les colonnes dynamiques.

COMPACT

Seule la version LindormTable 2.3.4 et ultérieure prend en charge la clause COMPACT, qui déclenche une compaction majeure.

L'exécution d'une compaction majeure fusionne les fichiers de données, efface les données supprimées ou expirées, libère de l'espace disque et améliore les performances en lecture/écriture. Cette opération consomme beaucoup de ressources.

  • Si vous ne spécifiez pas idcName :

    • Pour une instance mono-zone, qui ne comporte qu'un seul IDC, la spécification de idcName n'a aucun effet.

    • Pour une instance multi-zones, qui comporte deux IDC, les règles suivantes s'appliquent si vous ne spécifiez pas idcName :

      • Si votre version de LindormTable est antérieure à 2.6.4.2, une compaction majeure s'exécute uniquement sur idc1.

      • Si votre version de LindormTable est 2.6.4.2 ou ultérieure, une compaction majeure s'exécute par défaut sur tous les IDC.

  • Si vous spécifiez idcName, la compaction majeure s'exécute sur l'IDC spécifié. Vous pouvez spécifier plusieurs noms d'IDC, séparés par des virgules (,).

Pour un exemple, consultez la section Exécuter une compaction majeure.

Exemples

Les exemples de cette rubrique utilisent la table sensor créée avec l'instruction suivante issue de la rubrique CREATE TABLE :

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time BIGINT NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

Ajouter des colonnes

Ajoutez une nouvelle colonne n1 à la table sensor.

ALTER TABLE sensor ADD COLUMN n1 DOUBLE;

Ajoutez une colonne spatio-temporelle à la table de données spatio-temporelles roads.

  • Ajoutez une seule colonne spatiale.

    ALTER TABLE roads ADD COLUMN g2 GEOMETRY(LINESTRING);
  • Ajoutez plusieurs colonnes spatiales.

    ALTER TABLE roads ADD COLUMN g2 GEOMETRY(LINESTRING), g3 GEOMETRY(POLYGON);

Supprimer une colonne

Supprimez la colonne n1 de la table sensor.

ALTER TABLE sensor DROP COLUMN IF EXISTS n1;

Vérifier le résultat

Exécutez l'instruction suivante pour vérifier le résultat :

DESCRIBE table sensor;

Activer les colonnes dynamiques

Activez la fonctionnalité de colonnes dynamiques pour la table sensor.

ALTER TABLE sensor SET DYNAMIC_COLUMNS = 'true';
Remarque

Pour plus d'informations sur les colonnes dynamiques, consultez la rubrique Colonnes dynamiques.

Définir la cohérence de la table

Définissez la cohérence pour la table de données spatio-temporelles roads.

ALTER TABLE roads SET 'CONSISTENCY' = 'strong';

Définir le TTL

  • Définissez le TTL pour la table sensor en secondes (s).

    ALTER TABLE sensor SET TTL = '2592000';
  • Supprimez le TTL de la table sensor.

    ALTER TABLE sensor SET TTL = '';

    Vérifier le résultat

    Dans le système de gestion du cluster, accédez à la page Overview. Cliquez sur le nom de la table cible sous la base de données cible. Dans la section Current table details, consultez la valeur du paramètre TTL. Pour savoir comment accéder au système de gestion du cluster, consultez la rubrique Se connecter au système de gestion du cluster.

Définir l'algorithme de compression

  • Définissez l'algorithme de compression de la table sensor sur ZSTD.

    ALTER TABLE sensor SET COMPRESSION = 'ZSTD';
  • Définissez l'algorithme de compression de la table sensor sur NONE.

    ALTER TABLE sensor SET COMPRESSION = 'NONE';

    Vérifier le résultat

    Dans le système de gestion du cluster, accédez à la page Overview et cliquez sur le nom de la table cible sous la base de données cible. Dans la section Current table details, cliquez sur View table properties pour consulter la valeur du paramètre COMPRESSION.

Configurer la séparation des données chaudes et froides

Remarque

Pour plus d'informations sur la séparation des données chaudes et froides, consultez la rubrique Présentation de la séparation des données chaudes et froides.

Définir la limite entre les données chaudes et froides

Horodatage d'ingestion

Définissez la limite entre les données chaudes et froides pour la table sensor. LindormTable détermine s'il faut archiver les données dans le stockage Capacity en fonction de l'horodatage d'ingestion de chaque ligne.

-- Enable hot and cold data separation for the sensor table based on ingestion timestamp and set the boundary to one day.
ALTER TABLE sensor SET CHS = '86400', CHS_L2 = 'storagetype=COLD';

Vérifier le résultat

Exécutez l'instruction SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; pour afficher les valeurs des paramètres CHS et CHS_L2. Pour plus d'informations sur la syntaxe SHOW VARIABLES, consultez la rubrique SHOW VARIABLES.

Colonne temporelle personnalisée

Important

La séparation des données basée sur une colonne temporelle personnalisée présente des limitations. Avant d'utiliser cette fonctionnalité, consultez les Remarques relatives à l'utilisation.

Définissez la colonne temporelle personnalisée time comme limite entre les données chaudes et froides pour la table sensor. LindormTable détermine s'il faut archiver les données dans le stockage Capacity en fonction de l'horodatage d'événement de la colonne time de chaque ligne.

-- Enable hot and cold data separation for the sensor table based on a custom column, set the boundary to one day, and use the time column.
ALTER TABLE sensor SET CHS ='86400', CHS_L2 = 'storagetype=COLD', CHS_COLUMN = 'COLUMN=time';

Vérifier le résultat

Exécutez l'instruction SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; pour afficher les valeurs des paramètres CHS, CHS_L2 et CHS_COLUMN. Pour plus d'informations sur la syntaxe SHOW VARIABLES, consultez la rubrique SHOW VARIABLES.

Supprimer la limite entre les données chaudes et froides

Supprimez la limite entre les données chaudes et froides pour la table sensor.

ALTER TABLE sensor SET CHS = '', CHS_L2 = '';

Vérifier le résultat

Exécutez l'instruction SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; pour afficher les valeurs des paramètres CHS et CHS_L2. Pour plus d'informations sur la syntaxe SHOW VARIABLES, consultez la rubrique SHOW VARIABLES.

Exécuter une compaction majeure

  • Exécutez une compaction majeure sur la table sensor.

    ALTER TABLE sensor COMPACT;
    Remarque

    Pour une instance multi-zones, tenez compte des règles suivantes :

    • Si votre version de LindormTable est antérieure à 2.6.4.2, le système exécute une compaction majeure sur idc1 par défaut si vous ne spécifiez pas d'IDC.

    • Si votre version de LindormTable est 2.6.4.2 ou ultérieure, le système exécute une compaction majeure sur tous les IDC par défaut.

  • Exécutez une compaction majeure sur idc2.

    ALTER TABLE sensor COMPACT 'idc2';
  • Exécutez une compaction majeure sur idc1 et idc2.

    ALTER TABLE sensor COMPACT 'idc1,idc2';