Table Store SDK には、CreateTable、ListTable、DeleteTable、UpdateTable、DescribeTable の各テーブルを操作するためのAPIがあります。

CreateTable

与えられたテーブル構造情報に基づいてテーブルを作成します。

Table Store でテーブルを作成するときは、テーブルのプライマリキーを指定する必要があります。 プライマリキーには 1 つから 4 つのプライマリキー列があります。 各プライマリキー列には名前と型があります。

API

    // 説明: 入力されたテーブル情報に基づいてテーブルを作成します。
    // request は、tableMeta、TableOption および ReservedThroughput を含む CreateTableRequest クラスのインスタンスです。
   // 詳細については、TableMeta クラスのドキュメントを参照してください。 テーブルが作成された後、通常、パーティションのロードには 1 分かかります。
   // その後、テーブル操作を実行できます。
   // 戻り値: CreateTableResponse
        CreateTable(request *CreateTableRequest) (*CreateTableResponse, error)
			
テーブルが作成された後、テーブルのロードには数秒かかります。 この間は何の操作もしないでください。

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

        // プライマリキーの数量、名前、タイプなど、プライマリキー列のスキーマを作成します。
        // 最初のプライマリキー列であるシャーディング列は整数型で pk0 という名前です。
        // 2 番目のプライマリキー列は整数型で pk1 という名前です。

        tableMeta := new(tablestore.TableMeta)
        tableMeta.TableName = tableName
        tableMeta.AddPrimaryKeyColumn("pk0", tablestore.PrimaryKeyType_INTEGER)
        tableMeta.AddPrimaryKeyColumn("pk1", tablestore.PrimaryKeyType_STRING)
        tableOption := new(tablestore.TableOption)
        tableOption.TimeToAlive = -1
        tableOption.MaxVersion = 3
        reservedThroughput := new(tablestore.ReservedThroughput)
        reservedThroughput.Readcap = 0
        reservedThroughput.Writecap = 0
        createtableRequest.TableMeta = tableMeta
        createtableRequest.TableOption = tableOption
        createtableRequest.ReservedThroughput = reservedThroughput
        response, err = client.CreateTable(createtableRequest)
        if (err ! = nil) {
            fmt.Println("Failed to create table with error:", err)
        } else {
           fmt.Println("Create table finished")
        }
			
完全なサンプルコードは、『createTable@GitHub』をご参照ください。

ListTable

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

API

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

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

    tables, err := client.ListTable()
    if err ! = nil {
        fmt.Println("Failed to list table")
    } else {
        fmt.Println("List table result is")
        for _, table := range (tables.TableNames) {
            fmt.Println("TableName: ", table)
        }
    }
			
完全なサンプルコードは、『listTable@GitHub』をご参照ください。

UpdateTable

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

API

    // テーブルの TableOptions と ReservedThroughput を更新します。
    UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)
			

テーブルの maxVersions を 5 に設定します。

    updateTableReq := new(tablestore.UpdateTableRequest)
    updateTableReq.TableName = tableName
    updateTableReq.TableOption = new(tablestore.TableOption)
    updateTableReq.TableOption.TimeToAlive = -1
    updateTableReq.TableOption.MaxVersion = 5

    _, err := client.UpdateTable(updateTableReq)

    if (err ! = nil) {
        fmt.Println("failed to update table with error:", err)
    } else {
        fmt.Println("update finished")
    }
			
updateTable@GitHub』をご参照ください。

DescribeTable

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

API

// テーブル名を使用してテーブルの説明を照会します。
DescribeTable(request *DescribeTableRequest) (*DescribeTableResponse, error)
			

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

			
完全なサンプルコードは、『describeTable@GitHub』をご参照ください。

DeleteTable

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

API

DeleteTable(request DeleteTableRequest) (DeleteTableResponse, error)

テーブルを削除します。

    deleteReq := new(tablestore.DeleteTableRequest)
    deleteReq.TableName = tableName
    _, err := client.DeleteTable(deleteReq)
    if (err ! = nil) {
        fmt.Println("Failed to delete table with error:", err)
    } else {
        fmt.Println("Delete table finished")
    }
			
完全なサンプルコードは、『deleteTable@GitHub』をご参照ください。