Todos os produtos
Search
Central de documentação

Tablestore:crie uma tabela de dados

Última atualização: Sep 22, 2026

Este tópico descreve como criar uma tabela de dados no Tablestore usando o SDK do .NET.

Observações de uso

Após criar uma tabela de dados, aguarde o carregamento da tabela antes de executar operações nos dados. Caso contrário, as operações falharão. Esse processo geralmente leva alguns segundos.

Pré-requisitos

É necessário ter um cliente inicializado. Para mais informações, consulte Initialize a Tablestore client.

Descrição do método

public CreateTableResponse CreateTable(CreateTableRequest request)

Método assíncrono:

public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request)

Parâmetros de CreateTableRequest

  • TableMeta (obrigatório) TableMeta: Informações do esquema da tabela, incluindo os seguintes parâmetros:

    Parâmetro

    Tipo

    Descrição

    TableName (obrigatório)

    string

    O nome da tabela de dados.

    PrimaryKeySchema (obrigatório)

    PrimaryKeySchema

    Informações sobre a chave primária.

    • É possível configurar de 1 a 4 colunas de chave primária, ordenadas em ordem crescente por padrão. A primeira coluna de chave primária serve como chave de partição.

    • Os tipos de dados das colunas de chave primária incluem STRING, INTEGER e BINARY. É possível especificar uma coluna de chave primária do tipo INTEGER (que não seja a chave de partição) como um auto-increment primary key column.

    DefinedColumnSchema (opcional)

    DefinedColumnSchema

    Informações sobre colunas predefinidas.

    • Colunas predefinidas são colunas de atributo definidas previamente. Use colunas predefinidas para criar secondary indexes e search indexes.

    • Os tipos de dados das colunas predefinidas incluem STRING, INTEGER, BINARY, DOUBLE e BOOLEAN.

  • TableOptions (opcional) TableOptions: Informações de configuração da tabela, incluindo os seguintes parâmetros:

    Parâmetro

    Tipo

    Descrição

    TimeToLive (opcional)

    int

    O tempo de vida (TTL) dos dados, em segundos. O valor padrão é -1.

    • Quando este parâmetro é definido como -1, os dados nunca expiram. Caso contrário, o valor mínimo é 86400 (um dia). Os dados cujo período de retenção exceder o TTL são excluídos automaticamente.

    • Para usar índices de pesquisa ou secundários, defina este parâmetro como -1 ou atualize o parâmetro AllowUpdate como false.

    MaxVersions (opcional)

    int

    O número máximo de versões. O valor padrão é 1.

    • Para usar índices de pesquisa ou secundários, defina este parâmetro como 1.

    DeviationCellVersionInSec (opcional)

    long

    O desvio máximo de versão, em segundos. O valor padrão é 86400 (um dia).

    • A diferença entre a hora atual do sistema e o carimbo de data e hora dos dados gravados deve estar dentro do desvio máximo de versão. Caso contrário, a operação de gravação falhará.

    • O intervalo de versões válido para os dados da coluna de atributo é [max(Data written time - Maximum version offset, Data written time - TTL), Data written time + Maximum version offset).

    AllowUpdate (opcional)

    bool

    Indica se as atualizações são permitidas. O valor padrão é true.

    • Quando este parâmetro é definido como false, não é possível atualizar dados usando o método UpdateRow().

  • IndexMetas (opcional) List<IndexMeta>: A lista de índices secundários. Cada índice inclui os seguintes parâmetros:

    Parâmetro

    Tipo

    Descrição

    IndexName (obrigatório)

    string

    O nome do índice.

    PrimaryKey (obrigatório)

    List<string>

    As colunas de chave primária do índice.

    • As colunas de chave primária de um índice combinam as colunas de chave primária e as colunas predefinidas da tabela de dados.

    DefinedColumns (opcional)

    List<string>

    As colunas predefinidas do índice.

    • As colunas predefinidas de um índice consistem nas colunas predefinidas da tabela de dados.

    IndexType (opcional)

    IndexType

    O tipo do índice. O valor fixo é IT_GLOBAL_INDEX, indicando um índice secundário global.

    IndexUpdateModel (opcional)

    IndexUpdateMode

    O modo de atualização do índice. O valor fixo é IUM_ASYNC_INDEX, indicando atualização assíncrona.

    • defina o modo de atualização de um índice secundário global como assíncrono.

  • StreamSpecification (opcional) StreamSpecification: Informações de configuração do Stream, incluindo os seguintes parâmetros:

    Parâmetro

    Tipo

    Descrição

    EnableStream (obrigatório)

    bool

    Indica se o Stream será ativado. O valor padrão é false.

    ExpirationTime (opcional)

    int

    O tempo de expiração do Stream, indicando o período de retenção de logs incrementais. A unidade é horas e o valor máximo é 168 (sete dias).

    • ative o EnableStream como true e especifique ExpirationTime.

  • ReservedThroughput (obrigatório) CapacityUnit: O reserved read and write throughput, em unidades de capacidade (CUs). defina este parâmetro com um valor diferente de zero. Essa configuração só entra em vigor para tabelas de dados em instâncias de alto desempenho no modo CU.

Código de exemplo

O código de exemplo a seguir cria uma tabela chamada test_table, contendo uma coluna de chave primária do 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}");
}

Consulte também o código de exemplo a seguir e configure definições adicionais ao criar uma tabela de dados.

  • Adicione colunas predefinidas

    DefinedColumnSchema definedColumnSchema = new DefinedColumnSchema
    {
        { "name" , DefinedColumnType.STRING }
    };
    
    tableMeta.DefinedColumnSchema = definedColumnSchema;
  • especifique o desvio máximo de versão

     TableOptions tableOptions = new TableOptions();
     tableOptions.DeviationCellVersionInSec = 86400;
     
     request.TableOptions = tableOptions;
  • especifique se as atualizações são permitidas

    TableOptions tableOptions = new TableOptions();
    tableOptions.AllowUpdate = false;
    
    request.TableOptions = tableOptions;
  • Adicione um índice secundário

    // 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);
  • especifique as informações do Stream

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

Referências