全部产品
表格存储

表操作

更新时间:2017-09-08 15:20:58   分享:   

表格存储的 SDK 提供了 CreateTable、ListTable、DeleteTable、UpdateTable 和 DescribeTable 等表级别的操作接口。

创建表(CreateTable)

根据给定的表的结构信息创建相应的表。

创建表格存储的表时必须指定表的主键。主键包含 1~4 个主键列,每一个主键列都有名字和类型。

接口

  1. // 说明:根据表信息创建表。
  2. // request 是CreateTableRequest类的实例,它包含tablemeta 和 TableOption 以及 ReservedThroughput
  3. // 请参考TableMeta类的文档。当创建了一个表之后,通常要等待1分钟时间使partition load
  4. // 完成,才能进行各种操作。
  5. // 返回:CreateTableResponse。
  6. CreateTable(request *CreateTableRequest) (*CreateTableResponse, error)

说明:表格存储的表在被创建之后需要几秒钟进行加载,创建成功后需要等待几秒钟后再做其他操作。

示例

创建一个含有 2 个主键列,预留读/写吞吐量为 (0,0) 的表。

  1. //创建主键列的schema,包括PK的个数,名称和类型
  2. //第一个PK列为整数,名称是pk0,这个同时也是分片列
  3. //第二个PK列为整数,名称是pk1
  4. tableMeta := new(tablestore.TableMeta)
  5. tableMeta.TableName = tableName
  6. tableMeta.AddPrimaryKeyColumn("pk0", tablestore.PrimaryKeyType_INTEGER)
  7. tableMeta.AddPrimaryKeyColumn("pk1", tablestore.PrimaryKeyType_STRING)
  8. tableOption := new(tablestore.TableOption)
  9. tableOption.TimeToAlive = -1
  10. tableOption.MaxVersion = 3
  11. reservedThroughput := new(tablestore.ReservedThroughput)
  12. reservedThroughput.Readcap = 0
  13. reservedThroughput.Writecap = 0
  14. createtableRequest.TableMeta = tableMeta
  15. createtableRequest.TableOption = tableOption
  16. createtableRequest.ReservedThroughput = reservedThroughput
  17. response, err = client.CreateTable(createtableRequest)
  18. if (err != nil) {
  19. fmt.Println("Failed to create table with error:", err)
  20. } else {
  21. fmt.Println("Create table finished")
  22. }

说明:详细代码可在 createTable@GitHub 获取。

列出表名称(ListTable)

获取当前实例下已创建的所有表的表名。

接口

  1. // 列出所有的表,如果操作成功,将返回所有表的名称。
  2. ListTable() (*ListTableResponse, error)

示例

获取实例下的所有表名。

  1. tables, err := client.ListTable()
  2. if err != nil {
  3. fmt.Println("Failed to list table")
  4. } else {
  5. fmt.Println("List table result is")
  6. for _, table := range (tables.TableNames) {
  7. fmt.Println("TableName: ", table)
  8. }
  9. }

说明:详细代码可在 listTable@GitHub 获取。

更新表(UpdateTable)

更新指定表的预留读吞吐量或预留写吞吐量的设置。

接口

  1. // 更改表的tableoptions和reservedthroughput
  2. UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)

示例

更新表的最大版本数为5。

  1. updateTableReq := new(tablestore.UpdateTableRequest)
  2. updateTableReq.TableName = tableName
  3. updateTableReq.TableOption = new(tablestore.TableOption)
  4. updateTableReq.TableOption.TimeToAlive = -1
  5. updateTableReq.TableOption.MaxVersion = 5
  6. _, err := client.UpdateTable(updateTableReq)
  7. if (err != nil) {
  8. fmt.Println("failed to update table with error:", err)
  9. } else {
  10. fmt.Println("update finished")
  11. }

说明:详细代码可在 updateTable@GitHub 获取。

查询表描述信息(DescribeTable)

查询指定表的结构信息和预留读/写吞吐量的设置信息。

接口

  1. // 通过表名查询表描述信息
  2. DescribeTable(request *DescribeTableRequest) (*DescribeTableResponse, error)

示例

  1. describeTableReq := new(tablestore.DescribeTableRequest)
  2. describeTableReq.TableName = tableName
  3. describ, err := client.DescribeTable(describeTableReq)
  4. if err != nil {
  5. fmt.Println("failed to update table with error:", err)
  6. } else {
  7. fmt.Println("DescribeTableSample finished. Table meta:", describ.TableOption.MaxVersion, describ.TableOption.TimeToAlive)
  8. }

说明:详细代码可在 describeTable@GitHub 获取。

删除表(DeleteTable)

删除本实例下指定的表。

接口

DeleteTable(request DeleteTableRequest) (DeleteTableResponse, error)

示例

删除表。

  1. deleteReq := new(tablestore.DeleteTableRequest)
  2. deleteReq.TableName = tableName
  3. _, err := client.DeleteTable(deleteReq)
  4. if (err != nil) {
  5. fmt.Println("Failed to delete table with error:", err)
  6. } else {
  7. fmt.Println("Delete table finished")
  8. }

说明:详细代码可在 deleteTable@GitHub 获取。

本文导读目录
本文导读目录
以上内容是否对您有帮助?