Todos los productos
Search
Centro de documentos

Tablestore:Create a table

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Python para crear una tabla y, de forma opcional, configurar su esquema, ajustes, índices secundarios y cifrado de datos.

Requisitos previos

Instale Tablestore SDK for Python e inicialice un cliente.

Descripción de la función

Llame al método create_table para crear una tabla.

def create_table(
    self,
    table_meta,
    table_options,
    reserved_throughput,
    secondary_indexes=None,
    sse_spec=None,
)

El siguiente ejemplo crea la tabla example_table con id como columna de clave principal. Los datos de la tabla nunca caducan y solo se conserva una versión por cada columna de atributo.

table_meta = TableMeta(
    "example_table",
    [("id", "STRING")],
)
table_options = TableOptions(
    time_to_live=-1,
    max_version=1,
    max_time_deviation=86400,
    allow_update=True,
)
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))

client.create_table(table_meta, table_options, reserved_throughput)
Nota

Después de crear una tabla, espere unos segundos a que se cargue antes de realizar operaciones de datos.

Parámetros

El método create_table contiene los siguientes parámetros.

Nombre

Tipo

Descripción

table_meta (obligatorio)

TableMeta

El esquema de la tabla.

table_options (obligatorio)

TableOptions

Las configuraciones de la tabla.

reserved_throughput (obligatorio)

ReservedThroughput

El throughput reservado.

secondary_indexes (opcional)

List[SecondaryIndexMeta]

Los índices secundarios que se crearán junto con la tabla.

sse_spec (opcional)

SSESpecification

La configuración de cifrado del lado del servidor. El cifrado solo puede habilitarse al crear la tabla y no puede deshabilitarse posteriormente. Esta función requiere Tablestore SDK for Python 6.4.0 o posterior.

Esquema de la tabla

El parámetro table_meta es de tipo TableMeta y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

table_name (obligatorio)

str

El nombre de la tabla.

schema_of_primary_key (obligatorio)

List[Tuple]

El esquema de clave principal. Una tabla puede tener de una a cuatro columnas de clave principal. La primera columna de clave principal es la clave de partición, y las columnas de clave principal se ordenan de forma ascendente. Las columnas de clave principal admiten los tipos STRING, INTEGER y BINARY. Una columna de clave principal que no sea de partición y sea de tipo INTEGER puede configurarse como auto-increment primary key column.

defined_columns (opcional)

List[Tuple]

Las columnas predefinidas. Las columnas predefinidas admiten los tipos STRING, INTEGER, BINARY, DOUBLE y BOOLEAN, y pueden utilizarse para crear secondary indexes y search indexes.

Columna de clave principal

Cada tupla en table_meta.schema_of_primary_key[] configura una columna de clave principal y contiene los siguientes elementos.

Nombre

Tipo

Descripción

name (obligatorio)

str

El nombre de la columna de clave principal.

type (obligatorio)

str

El tipo de la columna de clave principal. Los valores válidos son STRING, INTEGER y BINARY.

option (opcional)

PrimaryKeyOption

La opción de clave principal. Establezca una columna de clave principal que no sea de partición y sea de tipo INTEGER en PK_AUTO_INCR para convertirla en una columna de clave principal de incremento automático.

Columna predefinida

Cada tupla en table_meta.defined_columns[] configura una columna predefinida y contiene los siguientes elementos.

Nombre

Tipo

Descripción

name (obligatorio)

str

El nombre de la columna predefinida.

type (obligatorio)

str

El tipo de la columna predefinida. Los valores válidos son STRING, INTEGER, BINARY, DOUBLE y BOOLEAN.

Configuraciones de la tabla

El parámetro table_options es de tipo TableOptions y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

time_to_live (opcional)

int

El tiempo de vida (TTL) de los datos en segundos. El valor predeterminado es -1, lo que indica que los datos nunca caducan. Si especifica otro valor, el mínimo es 86400, que equivale a un día. Los datos caducados se eliminan automáticamente. Para usar un índice de búsqueda o un índice secundario, establezca este parámetro en -1 o configure allow_update como False.

max_version (opcional)

int

El número máximo de versiones que se conservarán por cada columna de atributo. El valor predeterminado es 1. Para usar un índice de búsqueda o un índice secundario, establezca este parámetro en 1.

max_time_deviation (opcional)

int

La desviación máxima de versión en segundos. El valor predeterminado es 86400, que equivale a un día. La diferencia entre la marca de tiempo de los datos que se van a escribir y la hora actual del sistema debe estar dentro de la desviación máxima de versión. El rango de versiones válido es [max(data write time - maximum version deviation, data write time - TTL), data write time + maximum version deviation).

allow_update (opcional)

bool

Especifica si los datos pueden actualizarse mediante la llamada a update_row. Si no especifica este parámetro, el servidor permite actualizaciones de forma predeterminada. Si establece este parámetro en False, los datos no podrán actualizarse mediante la llamada a update_row.

Throughput reservado

El parámetro reserved_throughput es de tipo ReservedThroughput y contiene el siguiente parámetro.

Nombre

Tipo

Descripción

capacity_unit (obligatorio)

CapacityUnit

Las reserved throughput en unidades de capacidad (CU). Las CU de lectura y escritura predeterminadas son ambas 0. Solo las instancias de alto rendimiento en modo CU admiten valores distintos de cero.

Unidades de capacidad

El parámetro reserved_throughput.capacity_unit es de tipo CapacityUnit y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

read (opcional)

int

El throughput de lectura reservado en CU. El valor predeterminado es 0.

write (opcional)

int

El throughput de escritura reservado en CU. El valor predeterminado es 0.

Índice secundario

Cada elemento en secondary_indexes[] es de tipo SecondaryIndexMeta y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

index_name (obligatorio)

str

El nombre del índice.

primary_key_names (obligatorio)

List[str]

Las columnas de clave principal del índice. Puede utilizar columnas de clave principal y columnas predefinidas de la tabla. Para un índice secundario local, la primera columna de clave principal del índice debe ser igual a la de la tabla.

defined_column_names (opcional)

List[str]

Las columnas predefinidas incluidas en el índice. Las columnas ya deben estar definidas en la tabla.

index_type (opcional)

SecondaryIndexType

El tipo de índice. Los valores válidos son GLOBAL_INDEX, valor predeterminado para un índice secundario global, y LOCAL_INDEX, para un índice secundario local.

Configuración de cifrado del lado del servidor

El parámetro sse_spec es de tipo SSESpecification y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

enable (opcional)

bool

Especifica si se debe habilitar el cifrado de datos. El valor predeterminado es False.

key_type (opcional)

SSEKeyType

El tipo de cifrado. Los valores válidos son SSE_KMS_SERVICE para cifrado con clave administrada por KMS y SSE_BYOK para cifrado con clave propia (BYOK). Este parámetro es obligatorio cuando el cifrado está habilitado.

key_id (opcional)

str

El ID de la clave maestra del cliente. Este parámetro es obligatorio para el cifrado BYOK.

role_arn (opcional)

str

El Alibaba Cloud Resource Name (ARN) del rol de RAM. Este parámetro es obligatorio para el cifrado BYOK.

Ejemplos

Configurar el esquema de la tabla y las versiones de datos

El siguiente ejemplo agrega la columna predefinida name y conserva hasta tres versiones por cada columna de atributo.

table_meta = TableMeta(
    "example_table",
    [("id", "STRING")],
    [("name", "STRING")],
)
table_options = TableOptions(
    time_to_live=-1,
    max_version=3,
    max_time_deviation=86400,
    allow_update=True,
)
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))

client.create_table(table_meta, table_options, reserved_throughput)

Crear un índice secundario junto con una tabla

El siguiente ejemplo crea un índice secundario local junto con una tabla. La primera columna de clave principal tanto de la tabla como del índice secundario es id.

table_meta = TableMeta(
    "example_table",
    [("id", "STRING"), ("device_id", "INTEGER")],
    [("status", "STRING")],
)
table_options = TableOptions(time_to_live=-1, max_version=1)
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))
secondary_indexes = [
    SecondaryIndexMeta(
        "example_local_index",
        ["id", "device_id"],
        ["status"],
        index_type=SecondaryIndexType.LOCAL_INDEX,
    )
]

client.create_table(
    table_meta,
    table_options,
    reserved_throughput,
    secondary_indexes=secondary_indexes,
)

Cifrar una tabla

Los siguientes ejemplos utilizan una clave administrada por KMS y una clave administrada por el cliente para cifrar una tabla.

Importante

El cifrado solo puede habilitarse al crear la tabla y no puede deshabilitarse posteriormente.

Clave administrada por KMS

sse_spec = SSESpecification(
    enable=True,
    key_type=SSEKeyType.SSE_KMS_SERVICE,
)

client.create_table(
    table_meta,
    table_options,
    reserved_throughput,
    sse_spec=sse_spec,
)

Cifrado BYOK

Antes de usar el cifrado BYOK, obtenga el ID de la clave maestra del cliente y el ARN del rol de RAM. Para obtener más información, consulte Data encryption.

sse_spec = SSESpecification(
    enable=True,
    key_type=SSEKeyType.SSE_BYOK,
    key_id="key-example",
    role_arn="acs:ram::1234567890123456:role/example-role",
)

client.create_table(
    table_meta,
    table_options,
    reserved_throughput,
    sse_spec=sse_spec,
)