Todos os produtos
Search
Central de documentação

Tablestore:Criar uma tabela de dados

Última atualização: Jul 03, 2026

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

Observações de uso

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

Pré-requisitos

Inicialize um cliente. Para mais informações, consulte Inicializar um cliente do Tablestore.

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

    Nome da tabela de dados.

    PrimaryKeySchema (obrigatório)

    PrimaryKeySchema

    Informações sobre a chave primária.

    • Configure de 1 a 4 colunas de chave primária, ordenadas em ordem crescente por padrão. A primeira coluna de chave primária funciona como chave de partição.

    • Os tipos de dados das colunas de chave primária incluem STRING, INTEGER e BINARY. Defina uma coluna de chave primária do tipo INTEGER que não seja a chave de partição como uma coluna de chave primária com incremento automático.

    DefinedColumnSchema (opcional)

    DefinedColumnSchema

    Informações sobre colunas predefinidas.

    • Colunas predefinidas são colunas de atributo definidas antecipadamente. Use-as para criar índices secundários e índices de pesquisa.

    • 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

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

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

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

    MaxVersions (opcional)

    int

    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

    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 timestamp dos dados gravados deve estar dentro do desvio máximo de versão. Do contrário, a operação de gravação falha.

    • O intervalo de versões válidas para dados de colunas 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.

    • Se este parâmetro for definido como false, não será possível atualizar dados pelo método UpdateRow().

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

    Parâmetro

    Tipo

    Descrição

    IndexName (obrigatório)

    string

    Nome do índice.

    PrimaryKey (obrigatório)

    List<string>

    Colunas de chave primária do índice.

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

    DefinedColumns (opcional)

    List<string>

    Colunas predefinidas do índice.

    • As colunas predefinidas de um índice derivam das colunas predefinidas da tabela de dados.

    IndexType (opcional)

    IndexType

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

    IndexUpdateModel (opcional)

    IndexUpdateMode

    Modo de atualização do índice. O valor fixo é IUM_ASYNC_INDEX, referente à atualização assíncrona.

    • O modo de atualização de um índice secundário global deve ser obrigatoriamente assíncrono.

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

    Parâmetro

    Tipo

    Descrição

    EnableStream (obrigatório)

    bool

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

    ExpirationTime (opcional)

    int

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

    • Se EnableStream for true, especifique o ExpirationTime.

  • ReservedThroughput (obrigatório) CapacityUnit: O throughput de leitura e gravação reservado, em unidades de capacidade (CUs). Defina este parâmetro com um valor diferente de zero; essa configuração só tem efeito 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}");
}

Use também os exemplos abaixo para aplicar configurações adicionais durante a criação da tabela de dados.

  • Adicionar colunas predefinidas

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

     TableOptions tableOptions = new TableOptions();
     tableOptions.DeviationCellVersionInSec = 86400;
     
     request.TableOptions = tableOptions;
  • Definir permissão de atualizações

    TableOptions tableOptions = new TableOptions();
    tableOptions.AllowUpdate = false;
    
    request.TableOptions = tableOptions;
  • Incluir 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);
  • Configurar informações do Stream

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

Referências