Todos los productos
Search
Centro de documentos

Lindorm:ALTER TABLE

Última actualización: Sep 05, 2026

La instrucción ALTER TABLE modifica el esquema de una tabla; por ejemplo, permite agregar o eliminar columnas y establecer atributos de la tabla. Las cláusulas compatibles varían entre LindormTable y LindormTSDB.

Motores y versiones

La instrucción ALTER TABLE se aplica a LindormTable y LindormTSDB. No existen límites de versión.

Notas de uso

La operación ALTER TABLE no bloquea la tabla. Esta permanece disponible para lectura y escritura durante toda la operación. Sin embargo, podrían presentarse errores de tiempo de espera o breves fluctuaciones en el rendimiento por las siguientes razones:

  • Durante una operación DDL, cada shard se cierra y se vuelve a abrir brevemente para recargar los metadatos. Este proceso suele tardar entre 10 y varios cientos de milisegundos. Si una solicitud se dirige a un shard que se está reabriendo, podría experimentar un retraso menor o una breve fluctuación en el rendimiento. Se recomienda ejecutar operaciones DDL fuera del horario pico.

  • El resultado de una operación DDL se devuelve únicamente después de aplicar el cambio en todos los shards. En tablas grandes, esto puede provocar un tiempo de espera en el cliente si dicho límite es corto. La operación continúa ejecutándose en el servidor hasta completarse.

Sintaxis

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]

Diferencias entre motores

La instrucción ALTER TABLE presenta diferencias entre LindormTable y LindormTSDB. La siguiente tabla compara las cláusulas compatibles.

Cláusula

LindormTable

LindormTSDB

ADD COLUMN

Compatible

Compatible

COMPACT

Compatible

Nota

Compatible con LindormTable 2.3.4 y versiones posteriores.

No compatible

DROP COLUMN

Compatible

Nota

Compatible con LindormTable 2.6.6 y versiones posteriores.

No compatible

SET table_options

Compatible

No compatible

Cláusulas

ADD COLUMN

Tanto LindormTable como LindormTSDB son compatibles con la cláusula ADD COLUMN.

Al agregar columnas, aplique las siguientes reglas:

  • No es posible agregar una columna como clave principal.

  • En LindormTSDB, solo se permite agregar una columna de etiqueta o una columna de campo. No se pueden agregar columnas de marca de tiempo.

DROP COLUMN

La cláusula DROP COLUMN está disponible únicamente en LindormTable 2.6.6 y versiones posteriores.

Nota

Si no puede actualizar su instancia a la versión 2.6.6 o posterior desde la consola, póngase en contacto con el soporte técnico de Lindorm (ID de DingTalk: s0s3eg3).

La operación DROP COLUMN es asíncrona. Una vez que la instrucción ALTER TABLE se ejecuta correctamente, el sistema elimina de inmediato la columna objetivo, pero los datos de dicha columna no se limpian hasta que finaliza una operación COMPACT. Para acelerar la limpieza de datos, ejecute manualmente las operaciones FLUSH y COMPACT. No podrá agregar una columna con el mismo nombre hasta que los datos se hayan limpiado por completo. Para obtener más información, consulte FAQ.

SET table_options

Únicamente LindormTable es compatible con la cláusula SET table_options.

Para consultar la lista de atributos de tabla, vea Table attributes. Utilice la instrucción SHOW TABLE VARIABLES para comprobar que los atributos de la tabla se establecieron correctamente. Para obtener más información, consulte SHOW TABLE VARIABLES.

Importante

Al modificar los atributos MUTABILITY y CONSISTENCY, tenga en cuenta lo siguiente:

  • Antes de crear un índice, puede modificar tanto MUTABILITY como CONSISTENCY.

  • Después de crear un índice:

    • No es posible modificar MUTABILITY.

    • Puede cambiar el valor de CONSISTENCY de eventual a strong, pero no de strong a eventual.

Para ver un ejemplo, consulte Enable dynamic columns.

COMPACT

Solo LindormTable 2.3.4 y versiones posteriores admiten la cláusula COMPACT, la cual desencadena una compactación mayor.

Ejecutar una compactación mayor fusiona archivos de datos, elimina datos caducados o borrados, libera espacio en disco y mejora el rendimiento de lectura y escritura. Esta operación consume muchos recursos.

  • Si no especifica idcName:

    • En una instancia de zona única, que solo tiene un IDC, especificar idcName no surte efecto.

    • En una instancia multizona, que cuenta con dos IDC, aplican las siguientes reglas si no se especifica idcName:

      • Si su versión de LindormTable es anterior a la 2.6.4.2, la compactación mayor se ejecuta únicamente en idc1.

      • Si su versión de LindormTable es la 2.6.4.2 o posterior, la compactación mayor se ejecuta en todos los IDC de forma predeterminada.

  • Si especifica idcName, la compactación mayor se ejecuta en el IDC indicado. Puede especificar varios nombres de IDC separados por comas (,).

Para ver un ejemplo, consulte Run a major compaction.

Ejemplos

Los ejemplos de esta sección utilizan la tabla sensor creada con la siguiente instrucción del tema 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)
);

Agregar columnas

Agregue una nueva columna n1 a la tabla sensor.

ALTER TABLE sensor ADD COLUMN n1 DOUBLE;

Agregue una columna espaciotemporal a la tabla de datos espaciotemporales roads.

  • Agregue una sola columna espacial.

    ALTER TABLE roads ADD COLUMN g2 GEOMETRY(LINESTRING);
  • Agregue varias columnas espaciales.

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

Eliminar una columna

Elimine la columna n1 de la tabla sensor.

ALTER TABLE sensor DROP COLUMN IF EXISTS n1;

Comprobar el resultado

Ejecute la siguiente instrucción para comprobar el resultado:

DESCRIBE table sensor;

Habilitar columnas dinámicas

Habilite la función de columnas dinámicas para la tabla sensor.

ALTER TABLE sensor SET DYNAMIC_COLUMNS = 'true';
Nota

Para obtener más información sobre las columnas dinámicas, consulte Dynamic columns.

Establecer la consistencia de la tabla

Establezca la consistencia para la tabla de datos espaciotemporales roads.

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

Establecer el TTL

  • Establezca el TTL para la tabla sensor en segundos (s).

    ALTER TABLE sensor SET TTL = '2592000';
  • Quite el TTL de la tabla sensor.

    ALTER TABLE sensor SET TTL = '';

    Comprobar el resultado

    En el sistema de gestión de clústeres, vaya a la página Overview. Haga clic en el nombre de la tabla objetivo dentro de la base de datos correspondiente. En la sección Current table details, consulte el valor del parámetro TTL. Para obtener información sobre cómo acceder al sistema de gestión de clústeres, vea Log on to the cluster management system.

Establecer el algoritmo de compresión

  • Establezca el algoritmo de compresión de la tabla sensor en ZSTD.

    ALTER TABLE sensor SET COMPRESSION = 'ZSTD';
  • Establezca el algoritmo de compresión de la tabla sensor en NONE.

    ALTER TABLE sensor SET COMPRESSION = 'NONE';

    Comprobar el resultado

    En el sistema de gestión de clústeres, vaya a la página Overview y haga clic en el nombre de la tabla objetivo dentro de la base de datos correspondiente. En la sección Current table details, haga clic en View table properties para consultar el valor del parámetro COMPRESSION.

Configurar la separación de datos calientes y fríos

Nota

Para obtener más información sobre la separación de datos calientes y fríos, consulte Introduction to hot and cold data separation.

Establecer el límite entre datos calientes y fríos

Ingestion timestamp

Establezca el límite de datos calientes y fríos para la tabla sensor. LindormTable determina si debe archivar datos en Capacity storage según la marca de tiempo de ingestión de cada fila.

-- 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';

Comprobar el resultado

Ejecute la instrucción SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; para consultar los valores de los parámetros CHS y CHS_L2. Para obtener más información sobre la sintaxis de SHOW VARIABLES, consulte SHOW VARIABLES.

Custom time column

Importante

La separación de datos basada en una columna de tiempo personalizada tiene limitaciones. Antes de utilizar esta función, revise Usage notes.

Establezca la columna de tiempo personalizada time como límite de datos calientes y fríos para la tabla sensor. LindormTable determina si debe archivar datos en Capacity storage según la marca de tiempo del evento de la columna time en cada fila.

-- 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';

Comprobar el resultado

Ejecute la instrucción SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; para consultar los valores de los parámetros CHS, CHS_L2 y CHS_COLUMN. Para obtener más información sobre la sintaxis de SHOW VARIABLES, consulte SHOW VARIABLES.

Quitar el límite de datos calientes y fríos

Quite el límite de datos calientes y fríos de la tabla sensor.

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

Comprobar el resultado

Ejecute la instrucción SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; para consultar los valores de los parámetros CHS y CHS_L2. Para obtener más información sobre la sintaxis de SHOW VARIABLES, consulte SHOW VARIABLES.

Ejecutar una compactación mayor

  • Ejecute una compactación mayor en la tabla sensor.

    ALTER TABLE sensor COMPACT;
    Nota

    Para una instancia multizona, tenga en cuenta las siguientes reglas:

    • Si su versión de LindormTable es anterior a la 2.6.4.2, el sistema ejecuta una compactación mayor en idc1 de forma predeterminada si no se especifica un IDC.

    • Si su versión de LindormTable es la 2.6.4.2 o posterior, el sistema ejecuta una compactación mayor en todos los IDC de forma predeterminada.

  • Ejecute una compactación mayor en idc2.

    ALTER TABLE sensor COMPACT 'idc2';
  • Ejecute una compactación mayor en idc1 y idc2.

    ALTER TABLE sensor COMPACT 'idc1,idc2';