edit-icon download-icon

テーブルレベルの操作

最終更新日: May 05, 2018

テーブルストア SDK は、CreateTable、ListTable、DeleteTable、UpdateTable、および DescribeTable の各テーブルを操作するための API を提供します。

CreateTable

指定されたテーブル構造情報に基づいてテーブルを作成します。

テーブルストアでテーブルを作成するときは、テーブルのプライマリキーを指定する必要があります。プライマリキーには 1〜4 つのプライマリキー列があり、各プライマリキー列には名前とタイプがあります。

API

  1. // Description: This operation creates a table based on the entered table information
  2. // request is the instance of the CreateTableRequest class, which contains tablemeta, TableOption, and ReservedThroughput
  3. // For more information, refer to the documentation for the TableMeta class. After a table is created, it generally takes about one minute to load the partitions
  4. // After that, you can perform table operations
  5. // Return: CreateTableResponse
  6. CreateTable(request *CreateTableRequest) (*CreateTableResponse, error)

注意:テーブルを作成した後、テーブルをロードするのに数秒かかります。この間は何も操作しないでください。

2 つの主キー列と(0,0)の予約読み書きスループットを持つテーブルを作成します。

  1. //Create a schema for the Primary Key columns, including the quantity, names, and types of Primary Keys
  2. //The first Primary Key column, the sharding column, is of integer type and named pk0
  3. //The second Primary Key column is of integer type and named 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

現在のインスタンスの下にあるすべてのテーブルの名前を取得します。

API

  1. //すべてのテーブルを一覧表示します。操作が成功すると、すべてのテーブルの名前が返されます
  2. ListTable()(* ListTableResponseerror

インスタンスの下にあるすべてのテーブルの名前を取得します。

  1. tables, err := client.ListTable()
  2. if err != nil {
  3. fmt.Println("「テーブルの一覧表示に失敗しました:」")
  4. } else {
  5. fmt.Println("リストテーブル結果は")
  6. for _, table := range (tables.TableNames) {
  7. fmt.Println("TableName: ", table)
  8. }
  9. }

注意:完全なサンプルコードは listTable@GitHub で入手してください。

UpdateTable

指定したテーブルの予約された読み取りまたは書き込みスループット値を更新します。

API

  1. //テーブルのTableOptionsとReservedThroughputを更新する
  2. UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)

表の maxVersions を 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("「エラーのためテーブルの更新に失敗しました:」", err)
  9. } else {
  10. fmt.Println("テーブルの更新に失敗しました")
  11. }

注意:完全なサンプルコードは、updateTable@GitHub で入手してください。

DescribeTable

指定されたテーブルの構造情報と予約済みの読み込み/書き込みスループット値を照会します。

API

  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("「エラーのためテーブルの更新に失敗しました:」", err)
  6. } else {
  7. fmt.Println("DescribeTableSample finished. Table meta:", describ.TableOption.MaxVersion, describ.TableOption.TimeToAlive)
  8. }

注意:完全なサンプルコードは、describeTable@GitHub で入手してください。

DeleteTable

インスタンスの下で指定されたテーブルを削除します。

API

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("「エラーのためテーブルの削除に失敗しました:」", err)
  6. } else {
  7. fmt.Println("テーブル削除完了。")
  8. }

注意:完全なサンプルコードは、deleteTable@GitHub で入手してください。