Cette rubrique explique comment utiliser le SDK Tablestore pour Go afin de créer une table de données.
Remarques d'utilisation
Après la création d'une table de données, attendez que celle-ci soit chargée avant d'effectuer des opérations sur les données. Sinon, les opérations échoueront. Ce processus prend généralement quelques secondes.
Prérequis
Description de la méthode
func (tableStoreClient *TableStoreClient) CreateTable(request *CreateTableRequest) (*CreateTableResponse, error)
Exemple de code
L'exemple de code suivant crée une table de données nommée test_table contenant une colonne de clé primaire de type chaîne.
func CreateTableSample(client *tablestore.TableStoreClient) {
// Construct the schema information of the data table
tableMeta := new(tablestore.TableMeta)
tableMeta.TableName = "test_table"
// At least one primary key column is required to create a data table
tableMeta.AddPrimaryKeyColumn("id", tablestore.PrimaryKeyType_STRING)
// Construct the configuration information of the data table
tableOption := new(tablestore.TableOption)
// You must specify the maximum number of versions when you create a data table
tableOption.MaxVersion = 1
// You must specify the TTL when you create a data table. A value of -1 indicates that the data never expires
tableOption.TimeToAlive = -1
// You must set the reserved read and write throughput when you create a data table. The default value is 0 (Only high-performance instances in CU mode support setting the reserved read and write throughput of a data table to a non-zero value)
reservedThroughput := new(tablestore.ReservedThroughput)
reservedThroughput.Readcap = 0
reservedThroughput.Writecap = 0
// Construct the request and send it
createTableRequest := new(tablestore.CreateTableRequest)
createTableRequest.TableMeta = tableMeta
createTableRequest.TableOption = tableOption
createTableRequest.ReservedThroughput = reservedThroughput
_, err := client.CreateTable(createTableRequest)
if err != nil {
fmt.Println("Failed to create table with error:", err)
} else {
fmt.Println("Create table finished.")
}
}
Reportez-vous à 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
tableMeta.AddDefinedColumn("name", tablestore.DefinedColumn_STRING) -
Définir le décalage maximal de version
tableOption.DeviationCellVersionInSec = 86400 -
Définir l'autorisation des mises à jour
tableOption.AllowUpdate = proto.Bool(false) -
Ajouter un index secondaire
// Construct a secondary index indexMeta := new(tablestore.IndexMeta) indexMeta.IndexName = "test_table_index" // Set the primary key columns of the index indexMeta.AddPrimaryKeyColumn("id") indexMeta.AddPrimaryKeyColumn("name") // Set the index type indexMeta.IndexType = tablestore.IT_LOCAL_INDEX // Add the secondary index createTableRequest.AddIndexMeta(indexMeta) -
Configurer les paramètres de Stream
streamSpec := new(tablestore.StreamSpecification) streamSpec.EnableStream = true streamSpec.ExpirationTime = 168 createTableRequest.StreamSpec = streamSpec -
Définir l'activation des transactions locales
enableLocalTxn := proto.Bool(true) createTableRequest.EnableLocalTxn = enableLocalTxn -
Définir le type de chiffrement des données
-
Chiffrement basé sur KMS
sseSpec := new(tablestore.SSESpecification) sseSpec.SetEnable(true) sseSpec.SetKeyType(tablestore.SSE_KMS_SERVICE) createTableRequest.SSESpecification = sseSpec -
Chiffrement BYOK
RemarqueAvant d'exécuter le code, obtenez l'ID de la CMK et l'ARN du rôle RAM. Pour plus d'informations, consultez la section Chiffrement BYOK.
sseSpec := new(tablestore.SSESpecification) sseSpec.SetEnable(true) sseSpec.SetKeyType(tablestore.SSE_BYOK) sseSpec.SetKeyId("key-hzz65****************") sseSpec.SetRoleArn("acs:ram::1705************:role/tabletorebyok") createTableRequest.SSESpecification = sseSpec
-