Todos los productos
Search
Centro de documentos

Tablestore:Cree una tabla de datos

Última actualización: Sep 03, 2026

Este tema describe cómo crear una tabla de datos de Tablestore mediante el SDK de PHP.

Notas de uso

Después de crear una tabla de datos, espere a que se cargue antes de ejecutar operaciones sobre los datos. De lo contrario, las operaciones fallarán. Este proceso suele tardar varios segundos.

Requisitos previos

Initialize a Tablestore client

Descripción del método

public function createTable(array $request)

Descripción del parámetro $request

  • table_meta (obligatorio) object: Información de la estructura de la tabla, que incluye los siguientes parámetros.

    Nombre

    Tipo

    Descripción

    table_name (obligatorio)

    string

    Nombre de la tabla de datos.

    primary_key_schema (obligatorio)

    array

    Información de la clave primaria.

    • Puede configurar de 1 a 4 columnas de clave primaria, que se ordenan de forma ascendente de manera predeterminada. La primera columna de clave primaria funciona como clave de partición.

    • Los tipos de datos de la clave primaria incluyen STRING, INTEGER y BINARY. Las columnas de clave primaria de tipo entero que no son claves de partición pueden configurarse como auto-increment primary key columns.

    defined_column (opcional)

    array

    Información de las columnas predefinidas.

    • Las columnas predefinidas son columnas de atributos definidas previamente y pueden usarse para crear secondary indexes y search indexes.

    • Los tipos de datos de las columnas predefinidas incluyen STRING, INTEGER, BLOB, DOUBLE o BOOLEAN.

  • table_options (opcional) object: Información de configuración de la tabla, que incluye los siguientes parámetros.

    Nombre

    Tipo

    Descripción

    time_to_live (opcional)

    int

    Ciclo de vida de los datos en segundos. Valor predeterminado: -1.

    • Si este parámetro se establece en -1, los datos nunca caducan. De lo contrario, el valor mínimo es 86400 (1 día). Los datos que superen el ciclo de vida se eliminarán automáticamente.

    • Para usar índices de búsqueda o índices secundarios, debe establecer el ciclo de vida de los datos en -1 o configurar el parámetro allow_update como false.

    max_versions (opcional)

    int

    Número máximo de versiones. Valor predeterminado: 1.

    • Para usar índices de búsqueda o índices secundarios, el número máximo de versiones debe establecerse en 1.

    deviation_cell_version_in_sec (opcional)

    int

    Desviación máxima de versión en segundos. Valor predeterminado: 86400 (1 día).

    • La diferencia entre la marca de tiempo de los datos escritos y la hora actual del sistema debe estar dentro del rango de desviación máxima de versión. De lo contrario, la escritura de datos fallará.

    • El rango de versiones válido para los datos de columnas de atributos es [max(Data write time - Max version offset, Data write time - TTL value), Data write time + Max version offset).

    allow_update (opcional)

    bool

    Indica si se permiten actualizaciones. Valor predeterminado: true.

    • Si este parámetro se establece en false, no puede actualizar datos mediante el método updateRow().

  • index_metas (opcional) object: Lista de índices secundarios. Cada índice incluye los siguientes parámetros.

    Nombre

    Tipo

    Descripción

    name (obligatorio)

    string

    Nombre del índice.

    primary_key (obligatorio)

    array

    Columnas de clave primaria del índice.

    • Las columnas de clave primaria de un índice son una combinación de columnas de clave primaria y columnas predefinidas de la tabla de datos.

    • Para crear un índice secundario local, la primera columna de clave primaria del índice debe ser la primera columna de clave primaria de la tabla de datos.

    defined_column (obligatorio)

    array

    Columnas predefinidas del índice.

    • Las columnas predefinidas provienen de las columnas predefinidas de la tabla de datos.

    index_type (opcional)

    string

    Tipo de índice. Valores válidos:

    • GLOBAL_INDEX (valor predeterminado): índice secundario global.

    • LOCAL_INDEX: índice secundario local.

    index_update_mode (opcional)

    string

    Modo de actualización del índice. Valores válidos:

    • ASYNC_INDEX (valor predeterminado): actualización asíncrona. El modo de actualización para índices secundarios globales debe establecerse en actualización asíncrona.

    • SYNC_INDEX: actualización síncrona. El modo de actualización para índices secundarios locales debe establecerse en actualización síncrona.

  • stream_spec (opcional) object: Información de configuración de Stream, que incluye los siguientes parámetros.

    Nombre

    Tipo

    Descripción

    enable_stream (opcional)

    bool

    Indica si se habilita Stream. Valor predeterminado: false.

    expiration_time (opcional)

    int

    Tiempo de caducidad de Stream, que indica el periodo de retención de los registros incrementales. Unidad: horas. Valor máximo: 168 (7 días).

    • Si enable_stream se establece en true, debe configurar expiration_time.

  • reserved_throughput (obligatorio) object: reserved read and write throughput, en CU. Solo las instancias de alto rendimiento en modo CU admiten valores distintos de cero para que surtan efecto.

Código de ejemplo

Crear una tabla de datos

El siguiente código de ejemplo crea una tabla test_table que contiene una clave primaria de tipo String.

$request = array (
    // Table structure information
    'table_meta' => array (
        'table_name' => 'test_table',
        // At least one primary key is required to create a data table
        'primary_key_schema' => array (
            array('id', PrimaryKeyTypeConst::CONST_STRING)
        ),
        // (Optional) Add predefined columns
        'defined_column' => array (
            array('name', DefinedColumnTypeConst::DCT_STRING)
        )
    ), 
    // (Optional) Table configuration information
    'table_options' => array (
        // (Optional) Data lifecycle, -1 indicates that data never expires
        'time_to_live' => -1,
        // (Optional) Maximum number of versions
        'max_versions' => 1,
        // (Optional) Maximum version offset
        'deviation_cell_version_in_sec' => 86400,
        // (Optional) Whether to allow updates
        'allow_update' => true
    ), 
    // (Optional) Set Stream information
    'stream_spec' => array (
        'enable_stream' => true,
        'expiration_time' => 168
    ),
    // Reserved read and write throughput must be set when creating a data table (only high-performance instances in CU mode support setting non-zero values for reserved read and write throughput)
    'reserved_throughput' => array (
        'capacity_unit' => array (
            'read' => 0,
            'write' => 0
        )
    )
);

try{
    $client->createTable( $request );
    echo "Create table succeeded.";
} catch (Exception $e) {
    echo "Create table failed.";
}

Crear una tabla de datos con índices secundarios

El siguiente código de ejemplo crea una tabla de datos con índices secundarios.

$request = array (
    // Table structure information
    'table_meta' => array (
        'table_name' => 'test_table',
        // Primary key
        'primary_key_schema' => array (
            array('id', PrimaryKeyTypeConst::CONST_STRING)
        ),
        // Predefined columns
        'defined_column' => array (
            array('name', DefinedColumnTypeConst::DCT_STRING)
        )
    ), 
    // Reserved read and write throughput (only high-performance instances in CU mode support setting non-zero values for reserved read and write throughput)
    'reserved_throughput' => array (
        'capacity_unit' => array (
            'read' => 0,
            'write' => 0
        )
    ),
    // Secondary index information
    'index_metas' => array(
        array(
            'name' => 'test_table_index',
            'primary_key' => array('id'),
            'defined_column' => array('name'),
            'index_type' => IndexTypeConst::LOCAL_INDEX,
            'index_update_mode' => IndexUpdateModeConst::SYNC_INDEX
        )
    )
);

try{
    $client->createTable( $request );
    echo "Create table succeeded.";
} catch (Exception $e) {
    echo "Create table failed.";
}

Referencias