Tous les produits
Search
Centre de documentation

Tablestore:Create a data table

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment créer une table de données dans Tablestore à l'aide du SDK .NET.

Remarques d'utilisation

Après la création d'une table de données, attendez son chargement avant d'effectuer des opérations sur les données, faute de quoi elles échoueront. Ce processus prend généralement quelques secondes.

Prérequis

Un client est initialisé. Pour plus d'informations, reportez-vous à la section Initialiser un client Tablestore.

Description de la méthode

public CreateTableResponse CreateTable(CreateTableRequest request)

Méthode asynchrone :

public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request)

Paramètres CreateTableRequest

  • TableMeta (obligatoire) TableMeta : Informations de schéma de la table, incluant les paramètres suivants.

    Parameter

    Type

    Description

    TableName (required)

    string

    Nom de la table de données.

    PrimaryKeySchema (required)

    PrimaryKeySchema

    Informations relatives à la clé primaire.

    • Vous pouvez configurer de 1 à 4 colonnes de clé primaire, triées par ordre croissant par défaut. La première colonne de clé primaire sert de clé de partition.

    • Les types de données des colonnes de clé primaire sont STRING, INTEGER et BINARY. Vous pouvez spécifier une colonne de clé primaire de type INTEGER qui n'est pas la clé de partition en tant que colonne de clé primaire auto-incrémentielle.

    DefinedColumnSchema (facultatif)

    DefinedColumnSchema

    Informations relatives aux colonnes prédéfinies.

    • Les colonnes prédéfinies sont des colonnes d'attributs définies au préalable. Vous pouvez les utiliser pour créer des index secondaires et des index de recherche.

    • Les types de données des colonnes prédéfinies sont STRING, INTEGER, BINARY, DOUBLE et BOOLEAN.

  • TableOptions (facultatif) TableOptions : Informations de configuration de la table, incluant les paramètres suivants.

    Parameter

    Type

    Description

    TimeToLive (facultatif)

    int

    Durée de vie (TTL) des données, en secondes. La valeur par défaut est -1.

    • Si ce paramètre est défini sur -1, les données n'expirent jamais. Sinon, la valeur minimale est 86400 (un jour). Les données dont la période de rétention dépasse la TTL sont automatiquement supprimées.

    • Pour utiliser des index de recherche ou des index secondaires, vous devez définir ce paramètre sur -1 ou définir le paramètre AllowUpdate sur false.

    MaxVersions (facultatif)

    int

    Nombre maximal de versions. La valeur par défaut est 1.

    • Pour utiliser des index de recherche ou des index secondaires, vous devez définir ce paramètre sur 1.

    DeviationCellVersionInSec (facultatif)

    long

    Décalage maximal de version, en secondes. La valeur par défaut est 86400 (un jour).

    • La différence entre l'heure système actuelle et l'horodatage des données écrites doit se situer dans la limite du décalage maximal de version. Sinon, l'opération d'écriture échoue.

    • La plage de versions valides pour les données des colonnes d'attribut est [max(Data written time - Maximum version offset, Data written time - TTL), Data written time + Maximum version offset).

    AllowUpdate (facultatif)

    bool

    Indique si les mises à jour sont autorisées. La valeur par défaut est true.

    • Si ce paramètre est défini sur false, vous ne pouvez pas mettre à jour les données à l'aide de la méthode UpdateRow().

  • IndexMetas (facultatif) List<IndexMeta> : Liste des index secondaires. Chaque index comprend les paramètres suivants.

    Parameter

    Type

    Description

    IndexName (required)

    string

    Nom de l'index.

    PrimaryKey (required)

    List<string>

    Colonnes de clé primaire de l'index.

    • Les colonnes de clé primaire d'un index combinent les colonnes de clé primaire et les colonnes prédéfinies de la table de données.

    DefinedColumns (facultatif)

    List<string>

    Colonnes prédéfinies de l'index.

    • Les colonnes prédéfinies d'un index sont composées des colonnes prédéfinies de la table de données.

    IndexType (facultatif)

    IndexType

    Type d'index. La valeur fixe est IT_GLOBAL_INDEX, qui indique un index secondaire global.

    IndexUpdateModel (facultatif)

    IndexUpdateMode

    Mode de mise à jour de l'index. La valeur fixe est IUM_ASYNC_INDEX, qui indique une mise à jour asynchrone.

    • Le mode de mise à jour d'un index secondaire global doit être défini sur la mise à jour asynchrone.

  • StreamSpecification (facultatif) StreamSpecification : Informations de configuration Stream, incluant les paramètres suivants.

    Parameter

    Type

    Description

    EnableStream (required)

    bool

    Indique si Stream est activé. La valeur par défaut est false.

    ExpirationTime (facultatif)

    int

    Durée d'expiration du Stream, indiquant la période de rétention des journaux incrémentiels, en heures. La valeur maximale est 168 (sept jours).

    • Si EnableStream est défini sur true, vous devez spécifier ExpirationTime.

  • ReservedThroughput (obligatoire) CapacityUnit : Débit réservé en lecture et écriture, en unités de capacité (CU). Vous pouvez définir ce paramètre sur une valeur non nulle ; cette configuration ne prend effet que pour les tables de données dans les instances haute performance en mode CU.

Exemple de code

L'exemple de code suivant crée une table nommée test_table contenant une colonne de clé primaire de type 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}");
}

Reportez-vous également à l'exemple de code suivant pour configurer des paramètres supplémentaires lors de la création d'une table de données.

  • Ajouter des colonnes prédéfinies

    DefinedColumnSchema definedColumnSchema = new DefinedColumnSchema
    {
        { "name" , DefinedColumnType.STRING }
    };
    
    tableMeta.DefinedColumnSchema = definedColumnSchema;
  • Spécifier le décalage maximal de version

     TableOptions tableOptions = new TableOptions();
     tableOptions.DeviationCellVersionInSec = 86400;
     
     request.TableOptions = tableOptions;
  • Spécifier si les mises à jour sont autorisées

    TableOptions tableOptions = new TableOptions();
    tableOptions.AllowUpdate = false;
    
    request.TableOptions = tableOptions;
  • Ajouter un index secondaire

    // 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);
  • Spécifier les informations Stream

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

Références