Todos los productos
Search
Centro de documentos

Lindorm:CREATE TABLE

Última actualización: Sep 05, 2026

La instrucción CREATE TABLE permite crear tablas en LindormTable o LindormTSDB. Admite tipos de datos como VARCHAR, TIMESTAMP y BIGINT, así como atributos de tabla como TTL y COMPRESSION para adaptarse a diversos escenarios empresariales.

Motor y versión

  • CREATE TABLE se aplica a LindormTable y LindormTSDB.

  • LindormTSDB admite la sintaxis estándar de CREATE TABLE a partir de la versión 3.4.32. Para consultar o actualizar su versión, consulte LindormTSDB release notes y Upgrade a minor version.

Sintaxis

create_table_statement ::=  CREATE TABLE [ IF NOT EXISTS ] table_identifier
                            '('
                                column_definition
                                ( ',' column_definition )*
                                 ',' PRIMARY KEY '(' primary_key ')' 
                                ( ',' {KEY|INDEX} [index_identifier] 
                                     [ USING index_method_definition ] 
                                     [ INCLUDE column_identifier ( ',' column_identifier )* ]
                                     [ WITH  index_options ]
                                )*    
                            ')' 
                            [ PARTITION BY partition_definition ]
                            [ ZORDER BY zorder_column_list ]
                            [ WITH  table_options ]
column_definition      ::=  column_identifier data_type [ NOT NULL ]
primary_key            ::=  column_identifier [ ',' column_identifier (ASC|DESC)]                         
index_method_definition  ::= { KV | SEARCH }  
index_options            ::=  '(' 
                                  option_definition (',' option_definition )* 
                              ')'
partition_definition   ::=  HASH '(' column_identifier (',' column_identifier )* ')'
zorder_column_list     ::=  column_identifier ( ',' column_identifier )*
table_options          ::=  '(' option_definition (',' option_definition )*  ')'
option_definition      ::=  option_identifier '=' string_literal 

Diferencias de sintaxis

La sintaxis de CREATE TABLE difiere entre LindormTable y LindormTSDB. La siguiente tabla compara los parámetros compatibles según el motor.

Parámetro

LindormTable

LindormTSDB

Table name (table_identifier)

0

0

Column definition (column_definition)

0

0

Primary key (primary_key)

0

0

Expresión de índice (KEY|INDEX)[Index expression (KEY

INDEX)](#bb9b8e1047cvt)

0

✖️

Partition (partition_definition)

✖️

0

Table attributes (table_options)

0

✖️

Uso

Nombre de tabla (table_identifier)

El nombre de la tabla debe cumplir los siguientes requisitos:

  • El nombre puede contener dígitos, letras mayúsculas, letras minúsculas, puntos (.), guiones (-) y guiones bajos (_).

  • El nombre no puede comenzar con un punto (.) ni con un guion (-).

  • La longitud del nombre debe ser de 1 a 255 caracteres.

Definición de columna (column_definition)

Sintaxis

Obligatorio

Descripción

nombre de columna (column_identifier)

Sí

  • El nombre puede contener dígitos, letras mayúsculas, letras minúsculas, puntos (.), guiones (-) y guiones bajos (_).

  • No se pueden utilizar palabras clave reservadas del sistema como nombres de columna.

  • La longitud del nombre no puede exceder los 255 bytes.

tipo de dato (data_type)

Sí

Para obtener más información sobre los tipos de datos compatibles, consulte Data types.

Importante

Al crear una tabla de series temporales, tenga en cuenta lo siguiente si utiliza el tipo de dato TIMESTAMP:

  • Solo se puede especificar una columna TIMESTAMP.

  • LindormTSDB codifica y analiza las marcas de tiempo basándose en la hora estándar de China (UTC+8).

  • Algunos sistemas heredados procesan marcas de tiempo UNIX de 32 bits. Antes de escribir estas marcas de tiempo en LindormTSDB, multiplíquelas por 1,000 para evitar discrepancias semánticas. Por ejemplo, una marca de tiempo de 1641009600 se interpreta como 2022-01-01 12:00:00 en un sistema heredado, pero LindormTSDB la interpreta como 1970-01-20 07:50:09 (UTC+8) .

Restricción NULL

No

Indica si la columna admite valores NULL.

Importante

Lindorm SQL no valida esta restricción; la validación la realiza el motor de almacenamiento.

La validación de la restricción NULL depende de las reglas del motor de almacenamiento, las cuales varían. En consecuencia, es posible que pueda escribir valores NULL en una columna aunque esté definida con NOT NULL.

Para asegurar que los datos se escriban correctamente, siga estos requisitos:

  • Una columna de clave primaria no puede ser NULL. Debe especificar NOT NULL para todas las columnas de clave primaria al crear una tabla.

  • No especifique NOT NULL para columnas que no sean de clave primaria.

Clave primaria (primary_key)

Una clave primaria identifica de forma única los datos en una tabla y consta de una o más columnas. Debe especificar una clave primaria (PRIMARY KEY) al crear una tabla.

Importante

La clave primaria no se puede modificar después de su creación. Diseñe su clave primaria con cuidado.

Cuando utilice la instrucción CREATE TABLE para crear una tabla, tenga en cuenta lo siguiente:

Tipo de motor

Descripción

LindormTable

  • La longitud máxima de una sola columna de clave primaria es de 2 KB.

  • La longitud total de todas las columnas de clave primaria no puede exceder los 30 KB.

  • La longitud máxima de una sola columna que no sea de clave primaria no puede exceder los 2 MB.

LindormTSDB

  • En la clave primaria de una tabla de series temporales, una columna VARCHAR se denomina columna TAG y una columna TIMESTAMP se denomina columna de marca de tiempo.

  • Las columnas de clave primaria deben ser del tipo de dato VARCHAR o TIMESTAMP.

  • La clave primaria puede contener una o más columnas VARCHAR, pero solo una columna TIMESTAMP.

  • Utilice un identificador único del origen de datos como clave primaria para una tabla de series temporales. Algunos ejemplos incluyen ID de dispositivo en escenarios de IoT, números de identificación vehicular (VIN) en escenarios de Internet de los Vehículos (IoV) e ID de aplicación o cadenas ip:port en escenarios de monitoreo. Para obtener más información, consulte Best practices for designing a PRIMARY KEY.

Expresión de índice (KEY|INDEX)

Utilice la palabra clave KEY o INDEX en una instrucción CREATE TABLE para crear un índice junto con la tabla.

Importante
  • La expresión de índice (KEY|INDEX) solo es compatible con LindormTable 2.7.7 y versiones posteriores, y con Lindorm SQL 2.8.6.0 y versiones posteriores.

  • Para comprobar las versiones de LindormTable y Lindorm SQL, consulte LindormTable release notes y SQL version notes. Si no puede actualizar a las versiones requeridas desde la consola, póngase en contacto con el soporte técnico de Lindorm. El ID de DingTalk es s0s3eg3.

Uso

  • Si no especifica explícitamente un nombre de índice, el sistema genera uno de forma predeterminada. El formato del nombre de índice generado es TableName_idx_${auto-incremented ID}.

  • Mediante una expresión de índice, actualmente solo se pueden crear secondary indexes and search indexes.

  • Inclusión predeterminada de columnas para índices secundarios:

    Lindorm SQL 2.9.3.10 y versiones posteriores

    Si no especifica una cláusula INCLUDE al crear un índice secundario, todas las demás columnas no se incluyen en el índice de forma predeterminada.

    Lindorm SQL versiones anteriores a la 2.9.3.10

    Si no especifica una cláusula INCLUDE al crear un índice secundario, todas las demás columnas se incluyen en el índice de forma predeterminada.

    Nota

    Esto equivale a establecer el atributo de índice INDEX_COVERED_TYPE en COVERED_ALL_COLUMNS_IN_SCHEMA. Si la tabla es dinámica, esto equivale a establecer el atributo en COVERED_DYNAMIC_COLUMNS.

  • Si especifica una cláusula KEY o INDEX al crear una tabla pero no especifica explícitamente los atributos MUTABILITY y CONSISTENCY, la tabla se crea con los siguientes atributos predeterminados: CONSISTENCY = 'strong' y MUTABILITY='MUTABLE_LATEST'.

  • Si la instrucción CREATE TABLE incluye una expresión de índice, el sistema primero crea la tabla y luego el índice. Si ocurre una excepción durante la creación del índice, es posible que la tabla y el índice permanezcan y no se eliminen automáticamente. Puede usar instrucciones como SHOW y DESCRIBE para verlos, pero podría no ser capaz de escribir datos o consultar la tabla y el índice. Se recomienda eliminar la tabla y el índice restantes y volver a crearlos.

Partición (partition_definition)

Las particiones solo son compatibles con LindormTSDB. En una tabla de series temporales, la columna utilizada en la cláusula PARTITION BY debe ser una columna de clave primaria VARCHAR.

Utilice PARTITION BY HASH(column1, column2, ..., columnN) para especificar una o más columnas para el particionamiento hash. Por ejemplo: PARTITION BY HASH(c1, p1).

Atributos de tabla (table_options)

Solo LindormTable admite atributos de tabla. Puede usar la palabra clave WITH para agregar los siguientes atributos de tabla:

Opción

Tipo

Descripción

COMPRESSION

STRING

El algoritmo de compresión para la tabla. Valores válidos:

  • SNAPPY

  • ZSTD

  • LZ4

Nota

En versiones de LindormTable anteriores a la 2.3.4, no se especifica ningún algoritmo de compresión de forma predeterminada. En LindormTable 2.3.4 y versiones posteriores, se utiliza el algoritmo ZSTD de forma predeterminada.

TTL

INT

El tiempo de vida (TTL) de los datos, en segundos (s).

Nota
  • De forma predeterminada, este atributo no está configurado, lo que significa que los datos no caducan.

  • Puede agregar TTL=<time> a la instrucción para establecer un TTL para la tabla, o establecer TTL en una cadena vacía para eliminar el TTL. Para ver ejemplos de uso, consulte Examples.

COMPACTION_MAJOR_PERIOD

LONG

El intervalo en el que el sistema realiza una compactación mayor, en milisegundos (ms). Para ver ejemplos de uso, consulte Specify the major compaction interval.

Nota

Valor predeterminado: Math.Min(TTL, 1,728,000,000 ms). Si no establece un TTL, el valor predeterminado es de 20 días (20 × 24 × 60 × 60 × 1,000 = 1,728,000,000 ms).

MUTABILITY

STRING

El modo de escritura para la tabla base. Este atributo afecta el comportamiento de indexación. Valor predeterminado: MUTABLE_LATEST.

Valores válidos:

  • IMMUTABLE

  • IMMUTABLE_ROWS

  • MUTABLE_LATEST

  • MUTABLE_ALL

  • MUTABLE_UDT

Para obtener más información sobre los valores, consulte High-performance native secondary indexes.

Importante

Una vez creado un índice, no se puede modificar el atributo MUTABILITY. Para cambiar este atributo, primero debe eliminar todos los índices de la tabla. Realice una copia de seguridad de sus datos antes de realizar esta operación para evitar la pérdida de datos.

CONSISTENCY

STRING

El nivel de consistencia de la tabla. Para instancias multizona, especifica la consistencia de datos entre réplicas primarias y secundarias. Valores válidos:

  • eventual: nivel de consistencia eventual. Este es el valor predeterminado para tablas creadas sin una expresión de índice.

  • strong: nivel de consistencia fuerte.

Importante

Para instancias multizona, si su carga de trabajo implica operaciones de lectura-modificación-escritura como incremento, anexión o actualizaciones de índice, debe establecer el atributo CONSISTENCY de la tabla primaria en strong para garantizar la consistencia de datos entre réplicas.

NUMREGIONS

INT

El número de regiones predivididas para la tabla.

CHS

INT

El límite que separa los datos calientes de los fríos, en segundos.

Nota
  • Para establecer este límite, debe habilitar la función de almacenamiento en frío. Para obtener una descripción general e instrucciones sobre cómo habilitarla, consulte Hot and cold data separation.

  • Al configurar este atributo, también debe establecer CHS_L2='storagetype=COLD'.

STARTKEY y ENDKEY

El mismo tipo de dato que la primera columna de la clave primaria.

La clave inicial y la clave final para predividir las regiones de la tabla.

Nota
  • Si especifica STARTKEY y ENDKEY, también debe especificar NUMREGIONS. Si especifica STARTKEY y ENDKEY sin NUMREGIONS, se ignorarán.

  • Los valores literales de cadena especificados para STARTKEY y ENDKEY se convierten implícitamente al tipo de dato de la primera columna de la clave primaria y se utilizan como claves inicial y final para las particiones. Esta función solo admite los siguientes tipos de datos:

    • SMALLINT

    • INTEGER

    • BIGINT

    • CHAR

    • VARCHAR

    • FLOAT

    • DOUBLE

SPLITKEYS

El mismo tipo de dato que la primera columna de la clave primaria.

Las claves iniciales para todas las regiones predivididas de la tabla.

Nota
  • El atributo SPLITKEYS es compatible con LindormTable 2.5.4 y versiones posteriores.

  • En un valor SPLITKEYS basado en cadenas, utilice comas (,) para separar las claves iniciales de las regiones predivididas. Las comas encerradas entre comillas dobles ("") se tratan como caracteres normales.

  • El atributo SPLITKEYS no se puede utilizar junto con los atributos NUMREGIONS, STARTKEY o ENDKEY.

  • Al igual que con STARTKEY y ENDKEY, los valores literales de cadena especificados se convierten implícitamente al tipo de dato de la primera columna de la clave primaria y se utilizan como claves iniciales para las particiones. Esta función solo admite los siguientes tipos de datos:

    • SMALLINT

    • INTEGER

    • BIGINT

    • CHAR

    • VARCHAR

    • FLOAT

    • DOUBLE

SPLITALGO

STRING

Define el algoritmo de división para el preparticionamiento. Los algoritmos admitidos son:

  • HexStringSplit: divide la clave primaria basándose en bytes hexadecimales.

  • UniformSplit: divide uniformemente la clave primaria basándose en los valores de byte originales.

DYNAMIC_COLUMNS

STRING

Indica si se habilitan las columnas dinámicas. Valores válidos:

  • True: habilita las columnas dinámicas.

  • False: deshabilita las columnas dinámicas. Este es el valor predeterminado.

Nota

Dynamic columns solo admiten el tipo de dato Varbinary. Para obtener más información sobre columnas dinámicas, consulte Dynamic columns.

VERSIONS

STRING

El número de versiones que se conservarán para cada valor de columna. Debe ser un entero mayor o igual a 1. Valor predeterminado: 1. Para obtener más información sobre el versionado de datos, consulte Data versioning.

Importante

Un valor alto para el atributo VERSIONS puede degradar el rendimiento de consulta y almacenamiento. Se recomienda establecer este valor en 1.

BLOB_BUCKET_NAME

STRING

El nombre del bucket para columnas BLOB en la tabla.

El nombre del bucket debe seguir estas reglas:

  • Solo puede contener letras minúsculas, dígitos, puntos (.) y guiones (-).

  • Su longitud debe ser de 3 a 63 caracteres.

  • No puede comenzar ni terminar con un guion (-).

  • No puede contener puntos consecutivos (.).

Nota
  • El atributo BLOB_BUCKET_NAME es compatible con LindormTable 2.6.4 y versiones posteriores.

  • Si no especifica una columna BLOB al crear una tabla pero establece el atributo BLOB_BUCKET_NAME, el sistema no verifica la validez del nombre del bucket.

Nota

Las versiones de LindormTable anteriores a la 2.2.16 no admiten la palabra clave WITH para establecer atributos de tabla. Debe encerrar la palabra clave del atributo entre comillas simples ('). Los valores de los atributos se establecen según su tipo de dato; por ejemplo, los valores STRING deben ir entre comillas simples ('). Ejemplo: CREATE TABLE IF NOT EXISTS t1(c1 varchar, c2 bigint, c3 int, c4 int, PRIMARY KEY(c1,c2)) 'CONSISTENCY'='strong';.

Ejemplos

Crear una tabla

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

Verificación

Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

Crear una tabla con un índice

Cree un índice secundario junto con la tabla.

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

Verificación

Ejecute DESCRIBE table sensor; para comprobar que la tabla se creó correctamente, y ejecute SHOW INDEX FROM sensor; para verificar que el índice secundario se creó.

Especificar TTL y algoritmo de compresión

Cree una tabla ancha con un TTL de 30 días (2,592,000 segundos) y compresión ZSTD.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (COMPRESSION='ZSTD', TTL='2592000');

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área current table details, haga clic en view table properties para comprobar los parámetros COMPRESSION y TTL.

Especificar el intervalo de compactación mayor

Cree una tabla ancha con un intervalo de compactación mayor de 10 días (864,000,000 milisegundos).

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (COMPACTION_MAJOR_PERIOD='864000000');

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área current table details, haga clic en view table properties para comprobar el valor del parámetro COMPACTION_MAJOR_PERIOD.

Habilitar columnas dinámicas

Para escribir datos en columnas dinámicas, establezca DYNAMIC_COLUMNS en TRUE.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (DYNAMIC_COLUMNS='TRUE');

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área current table details, haga clic en view table properties para comprobar el valor del parámetro DYNAMIC_COLUMNS.

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

Cree una tabla ancha con un límite de datos calientes y fríos para el archivado de datos.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (CHS = '86400', CHS_L2 = 'storagetype=COLD');

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área current table details, haga clic en view table properties para comprobar los parámetros CHS y CHS_L2.

Establecer varios atributos a la vez

Cree una tabla ancha con compresión, TTL y un límite de datos calientes y fríos.

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (
    COMPRESSION='ZSTD', 
    CHS = '86400', 
    CHS_L2 = 'storagetype=COLD', 
    TTL = '2592000');

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área current table details, haga clic en view table properties para comprobar los parámetros COMPRESSION, CHS, CHS_L2 y TTL.

Configurar particiones

Cree una tabla ancha predividida en cinco particiones, con clave inicial 1000 y clave final 9000.

CREATE TABLE sensor (
  p1 INTEGER NOT NULL, 
  c1 INTEGER, 
  c2 VARCHAR, 
  c3 VARCHAR,
  PRIMARY KEY(p1)
) WITH (NUMREGIONS='5', STARTKEY='1000', ENDKEY='9000');

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área Shard information, compruebe los parámetros startKey y endKey de cada partición.

Establecer claves iniciales para varias particiones

Ejemplos de código

  • Especificar particiones mediante claves numéricas (según su distribución de datos)

    Cree una tabla ancha con claves iniciales predefinidas para cinco particiones, lo que da como resultado seis particiones predivididas.

    CREATE TABLE sensor (
      p1 INT NOT NULL,
      p2 INT NOT NULL,
      c1 VARCHAR,
      c2 BIGINT,
      PRIMARY KEY(p1, p2)
    ) WITH (SPLITKEYS = '100000,300000,500000,700000,900000');
  • Especificar particiones mediante claves de cadena (según su distribución de datos)

    CREATE TABLE your_table (
        address VARCHAR NOT NULL,
        col1 VARCHAR,
        PRIMARY KEY (address)
    ) WITH (
        SPLITKEYS = '0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff'
    );
  • Especificar un algoritmo de división

    CREATE TABLE your_table2 (
        address VARCHAR NOT NULL,
        col1 VARCHAR,
        PRIMARY KEY (address)
    ) WITH (
        NUMREGIONS = 256,
        SPLITALGO = 'HexStringSplit'
    );

Verificación

  • Ejecute la instrucción DESCRIBE table sensor; para comprobar que la tabla se creó correctamente.

  • Vaya a la página Overview en cluster management system y haga clic en el nombre de la tabla objetivo. En el área Shard information, compruebe los parámetros startKey y endKey de cada partición.

Especificar explícitamente una columna de clave de partición

Dado que la mayoría de las consultas recuperan datos instantáneos de un solo dispositivo, especifique device_id como la columna de clave de partición.

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

Verificación

Ejecute la instrucción DESCRIBE TABLE sensor; para comprobar que la tabla se creó correctamente.

Cree una tabla geoespacial

  • Cree una tabla que admita el tipo de datos espaciales genérico Geometry. Esto le permite escribir cualquier tipo de dato espacial.

    CREATE TABLE geoms(gid INT, g GEOMETRY, PRIMARY KEY(gid));

    Escriba datos de cualquier tipo de dato espacial.

    UPSERT INTO geoms(gid, g) VALUES(0,ST_GeomFromText('POINT(-10.1 3.3)')),(1,ST_GeomFromText('LINESTRING(-12.2 4.3, -10.2 4.3)')),(2,ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))'));
  • Cree una tabla para el tipo de dato Point. En esta tabla solo se pueden escribir datos de puntos.

    CREATE TABLE pts(gid INT, g GEOMETRY(POINT), PRIMARY KEY(gid));

    Escriba datos de puntos.

    UPSERT INTO pts(gid, g) VALUES(0, ST_MakePoint(0,0)),(1, ST_MakePoint(1,1));
  • Cree una tabla para el tipo de dato Polygon. En esta tabla solo se pueden escribir datos de polígonos.

    CREATE TABLE polys(gid INT, g GEOMETRY(POLYGON), PRIMARY KEY(gid));

    Escriba datos de polígonos.

    UPSERT INTO polys(gid,g) VALUES(0,ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))'));
  • Cree una tabla para el tipo de dato LineString. En esta tabla solo se pueden escribir datos de líneas.

    CREATE TABLE lines(gid INT, g GEOMETRY(LINESTRING), PRIMARY KEY(gid));

    Escriba datos de líneas.

    UPSERT INTO lines(gid,g) VALUES(0, ST_GeomFromText('LINESTRING(-12.2 4.3, -10.2 4.3)'));
  • Cree una tabla para el tipo de dato MULTIPOINT. En esta tabla solo se pueden escribir datos de multipuntos.

    CREATE TABLE multipoints(gid INT, g GEOMETRY(MULTIPOINT), PRIMARY KEY(gid));

    Escriba datos de multipuntos.

    UPSERT INTO multipoints(gid,g) VALUES(0, ST_GeomFromText('MULTIPOINT (10 40, 40 30, 20 20, 30 10)'));
  • Cree una tabla para el tipo de dato MULTILINESTRING. En esta tabla solo se pueden escribir datos de multilíneas.

    CREATE TABLE multilines(gid INT, g GEOMETRY(MULTILINESTRING), PRIMARY KEY(gid));

    Escriba datos de multilíneas.

    UPSERT INTO multilines(gid,g) VALUES(0, ST_GeomFromText('MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))'));
  • Cree una tabla para el tipo de dato MULTIPOLYGON. En esta tabla solo se pueden escribir datos de multipolígonos.

    CREATE TABLE multipolys(gid INT, g GEOMETRY(MULTIPOLYGON), PRIMARY KEY(gid));

    Escriba datos de multipolígonos.

    UPSERT INTO multipolys(gid,g) VALUES(0, ST_GeomFromText('MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))'));
  • Cree una tabla para el tipo de dato GEOMETRYCOLLECTION. En esta tabla solo se pueden escribir datos de colecciones de geometrías.

    CREATE TABLE collections(gid INT, g GEOMETRY(GEOMETRYCOLLECTION), PRIMARY KEY(gid));

    Escriba datos de colecciones de geometrías.

    UPSERT INTO collections(gid,g) VALUES(0, ST_GeomFromText('GEOMETRYCOLLECTION (POINT (40 10), LINESTRING (10 10, 20 20, 10 40), POLYGON ((40 40, 20 45, 45 30, 40 40)))'));
  • Cree una tabla con varias columnas del tipo Geometry.

    CREATE TABLE mix(gid INT, pt GEOMETRY(POINT), ply GEOMETRY(POLYGON), PRIMARY KEY(gid));