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 en Tablestore mediante el SDK de .NET.

Notas de uso

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

Requisitos previos

Debe haber inicializado un cliente. Para obtener más información, consulte Initialize a Tablestore client.

Descripción del método

public CreateTableResponse CreateTable(CreateTableRequest request)

Método asíncrono:

public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request)

Parámetros de CreateTableRequest

  • TableMeta (obligatorio) TableMeta: Información del esquema de la tabla, que incluye los siguientes parámetros.

    Parámetro

    Tipo

    Descripción

    TableName (obligatorio)

    string

    Nombre de la tabla de datos.

    PrimaryKeySchema (obligatorio)

    PrimaryKeySchema

    Información sobre la clave principal.

    • Configure de 1 a 4 columnas de clave principal, las cuales se ordenan de forma ascendente de manera predeterminada. La primera columna de clave principal funciona como clave de partición.

    • Los tipos de datos de las columnas de clave principal incluyen STRING, INTEGER y BINARY. Especifique una columna de clave principal de tipo INTEGER que no sea la clave de partición como auto-increment primary key column.

    DefinedColumnSchema (opcional)

    DefinedColumnSchema

    Información sobre las columnas predefinidas.

    • Las columnas predefinidas son columnas de atributos definidas con antelación. Úselas para crear secondary indexes y search indexes.

    • Los tipos de datos de las columnas predefinidas incluyen STRING, INTEGER, BINARY, DOUBLE y BOOLEAN.

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

    Parámetro

    Tipo

    Descripción

    TimeToLive (opcional)

    int

    Tiempo de vida (TTL) de los datos, en segundos. El valor predeterminado es -1.

    • Si establece este parámetro en -1, los datos nunca caducan. De lo contrario, el valor mínimo es 86400 (un día). Los datos cuyo periodo de retención supera el TTL se eliminan automáticamente.

    • Para usar índices de búsqueda o índices secundarios, establezca este parámetro en -1 o configure el parámetro AllowUpdate como false.

    MaxVersions (opcional)

    int

    Número máximo de versiones. El valor predeterminado es 1.

    • Para usar índices de búsqueda o índices secundarios, establezca este parámetro en 1.

    DeviationCellVersionInSec (opcional)

    long

    Desviación máxima de versión, en segundos. El valor predeterminado es 86400 (un día).

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

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

    AllowUpdate (opcional)

    bool

    Indica si se permiten actualizaciones. El valor predeterminado es true.

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

  • IndexMetas (opcional) List<IndexMeta>: Lista de índices secundarios. Cada índice incluye los siguientes parámetros.

    Parámetro

    Tipo

    Descripción

    IndexName (obligatorio)

    string

    Nombre del índice.

    PrimaryKey (obligatorio)

    List<string>

    Columnas de clave principal del índice.

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

    DefinedColumns (opcional)

    List<string>

    Columnas predefinidas del índice.

    • Las columnas predefinidas de un índice se componen de columnas predefinidas de la tabla de datos.

    IndexType (opcional)

    IndexType

    Tipo de índice. El valor fijo es IT_GLOBAL_INDEX, que indica un índice secundario global.

    IndexUpdateModel (opcional)

    IndexUpdateMode

    Modo de actualización del índice. El valor fijo es IUM_ASYNC_INDEX, que indica una actualización asíncrona.

    • El modo de actualización de un índice secundario global debe configurarse como actualización asíncrona.

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

    Parámetro

    Tipo

    Descripción

    EnableStream (obligatorio)

    bool

    Indica si se habilita Stream. El valor predeterminado es false.

    ExpirationTime (opcional)

    int

    Tiempo de caducidad de Stream, que indica el periodo de retención de los registros incrementales. La unidad es horas. El valor máximo es 168 (siete días).

    • Si EnableStream se establece en true, debe especificar ExpirationTime.

  • ReservedThroughput (obligatorio) CapacityUnit: El reserved read and write throughput, en unidades de capacidad (CU). Establezca este parámetro en un valor distinto de cero; la configuración solo surte efecto para tablas de datos en instancias de alto rendimiento en modo CU.

Código de ejemplo

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

try
{
    // At least one primary key column is required to create a data table.
    PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
    {
        { "id", ColumnValueType.String }
    };
    // Construct the schema information of the data table.
    TableMeta tableMeta = new TableMeta("test_table", primaryKeySchema);

    // You must set the reserved read and write throughput when you create a data table (you can set this parameter to a non-zero value and the setting takes effect only for data tables in high-performance instances in CU mode).
    CapacityUnit reservedThroughput = new CapacityUnit(0, 0);

    // Construct the request and send it.
    CreateTableRequest request = new CreateTableRequest(tableMeta, reservedThroughput);
    client.CreateTable(request);
    Console.WriteLine("Create table succeeded.");
}
catch (Exception ex)
{
    Console.WriteLine($"Create table failed, exception:{ex.Message}");
}

También puede consultar el siguiente código de ejemplo para configurar ajustes adicionales al crear una tabla de datos.

  • Agregar columnas predefinidas

    DefinedColumnSchema definedColumnSchema = new DefinedColumnSchema
    {
        { "name" , DefinedColumnType.STRING }
    };
    
    tableMeta.DefinedColumnSchema = definedColumnSchema;
  • Especificar la desviación máxima de versión

     TableOptions tableOptions = new TableOptions();
     tableOptions.DeviationCellVersionInSec = 86400;
     
     request.TableOptions = tableOptions;
  • Especificar si se permiten actualizaciones

    TableOptions tableOptions = new TableOptions();
    tableOptions.AllowUpdate = false;
    
    request.TableOptions = tableOptions;
  • Agregar un índice secundario

    // Construct a list of secondary indexes.
    List<IndexMeta> indexMetas = new List<IndexMeta>();
    // Construct a secondary index.
    IndexMeta indexMeta = new IndexMeta("test_table_index");
    // Specify the primary key of the index.
    indexMeta.PrimaryKey = new List<string>() { "id", "name" };
    // Specify the index type.
    indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
    // Specify the index update mode.
    indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;
    // Add the secondary index.
    indexMetas.Add(indexMeta);
    
    // Construct the request.
    CreateTableRequest request = new CreateTableRequest(tableMeta, reservedThroughput, indexMetas);
  • Especificar información de Stream

    StreamSpecification streamSpecification = new StreamSpecification(true);
    streamSpecification.ExpirationTime = 168;
                    
    request.StreamSpecification = streamSpecification;

Referencias