Table Store SDK には、CreateTable、ListTable、DeleteTable、UpdateTable、DescribeTable のテーブルレベルの操作インターフェイスがあります。

CreateTable

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

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

API

        /// <summary>
        /// テーブル情報 (テーブル名、プライマリキーのデザイン、予約済み読み書きのスループットなど) に基づいてテーブルを作成します。
        /// </summary>
        ///<param name = "request"> リクエストパラメーター </param>
        ///<returns> Create Table から返される情報です。 戻されたインスタンスは null 値です。具体的な情報はありません。
        /// </returns>
        public CreateTableResponse CreateTable(CreateTableRequest request);

        /// <summary>
        /// CreateTable の非同期形式。
        /// </summary>
        public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request);
			
テーブルが Table Store に作成された後、テーブルを完全にロードするのに数秒かかります。 この間は何の操作もしないでください。

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

        // 主キーの数量、名前、タイプなど、主キー列のスキーマを作成します
        // 最初のプライマリキー列 (シャーディング列) は pk0 という名前で、整数型です。
        // 2 番目のプライマリキー列は pk1 という名前で、String 型です。
        var primaryKeySchema = new PrimaryKeySchema();
        primaryKeySchema.Add("pk0", ColumnValueType.Integer);
        primaryKeySchema.Add("pk1", ColumnValueType.String);

        // テーブル名とプライマリキーカラムに基づいて tableMeta を作成します。
        var tableMeta = new TableMeta("SampleTable", primaryKeySchema);

        // 予約済み読み取りスループットと予約書き込みスループットを 0 に設定します
        var reservedThroughput = new CapacityUnit(0, 0);

        try
        {
            // CreateTableRequest オブジェクトを作成します
            var request = new CreateTableRequest(tableMeta, reservedThroughput);

            // クライアントの CreateTable インターフェイスを呼び出します。 例外がスローされなければ、テーブルは正常に作成されます。 例外がスローされた場合、テーブルは作成されません。
            otsClient.CreateTable(request);

            Console.WriteLine("Create table succeeded.") ;
        }
        // 例外を処理します。
        catch (Exception ex)
        {
            Console.WriteLine("Create table failed, exception:{0}", ex.Message);
        }
			

コードの詳細は、『CreateTable@GitHub』をご参照ください。

ListTable

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

API

        /// <summary>
        /// 現在のインスタンスの下にあるすべてのテーブルの名前を取得します。
        /// </summary>
        ///<param name = "request"> リクエストパラメーター </ param>
        /// <returns> ListTable から戻され、テーブル名リストを取得するために使用される情報です。</returns> </returns>
        public ListTableResponse ListTable(ListTableRequest request);

        /// <summary>
        /// ListTable の非同期形式。
        /// </summary>
        public Task<ListTableResponse> ListTableAsync(ListTableRequest request);
			

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

        var request = new ListTableRequest();
        try
        {
            var response = otsClient.ListTable(request);
            foreach (var tableName in response.TableNames)
            {
                Console.WriteLine("Table name:{0}", tableName);
            }
            Console.Writeline("List table succeeded.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("List table failed, exception:{0}", ex.Message);
        }
			

UpdateTable

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

API

        /// <summary>
        /// 指定されたテーブルの予約された読み取りまたは書き込みのスループット値を更新します。 スループットが正常に更新されてから 1 分以内に新しい値が有効になります。
        /// </summary>
        ///<param name = "request"> リクエストパラメーターです。テーブル名と予約済み読み書きのスループットを含みます。 </param>
        ///<returns> 更新された予約済みの読み書きスループットとその他の情報を含みます。 </returns>
        public UpdateTableResponse UpdateTable(UpdateTableRequest request);

        /// <summary>
        /// UpdateTable の非同期フォーム。
        /// </summary>
        public Task<UpdateTableResponse> UpdateTableAsync(UpdateTableRequest request);
			

テーブルの読み取り CU と書き込み CU をそれぞれ 1 と 2 に更新します。

        // 予約読み取りスループットを 1 に、予約書き込みスループットを 2 に更新します。
        var reservedThroughput = new CapacityUnit(1, 2);

        // UpdateTableRequest オブジェクトを作成します。
        var request = new UpdateTableRequest("SampleTable", reservedThroughput);
        try
        {
            // テーブルの予約済み読み書きスループットを更新するためにインターフェイスを呼び出します
            otsClient.UpdateTable(request);

            // 例外がスローされなければ、実行は成功します。
            Console.Writeline("Update table succeeded.");
        }
        catch (Exception ex)
        {
            // 例外がスローされてエラーメッセージが表示されると、実行は失敗します。
            Console.WriteLine("Update table failed, exception:{0}", ex.Message);
        }
			

コードの詳細は、『UpdateTable@GitHub』をご参照ください。

DescribeTable

指定されたテーブルの構造情報と予約済み読み書きスループット値を問い合わせます。

API

        /// <summary>
        /// 指定されたテーブルの構造情報と予約済み読み書きスループット値を照会します。
        /// </summary>
        ///<param name = "request"> テーブル名を含むリクエストパラメーターです。 </param>
        ///<returns> 指定されたテーブルの構造情報と予約済み読み書きスループット値を含みます。 </returns> </returns>
        public DescribeTableResponse DescribeTable(DescribeTableRequest request);

        /// <summary>
        /// DescribeTable の非同期形式。
        /// </summary>
        public Task<DescribeTableResponse> DescribeTableAsync(DescribeTableRequest request);
			

テーブルの説明情報を取得します。

        try
        {
            var request = new DescribeTableRequest("SampleTable");
            var response = otsClient.DescribeTable(request);

            // 指定されたテーブルの説明情報を表示します。
            Console.Writeline("Describe table succeeded.") ;
            Console.WriteLine("LastIncreaseTime: {0}", response.ReservedThroughputDetails.LastIncreaseTime);
            Console.WriteLine("LastDecreaseTime: {0}", response.ReservedThroughputDetails.LastDecreaseTime);
            Console.WriteLine("NumberOfDecreaseToday: {0}", response.ReservedThroughputDetails.LastIncreaseTime);
            Console.WriteLine("ReadCapacity: {0}", response.ReservedThroughputDetails.CapacityUnit.Read);
            Console.WriteLine("WriteCapacity: {0}", response.ReservedThroughputDetails.CapacityUnit.Write);
        }
        catch (Exception ex)
        {
            // Execution fails if an exception is thrown, and an error message is printed.
            Console.WriteLine("Describe table failed, exception:{0}", ex.Message);
        }
			

コードの詳細は、『DescribeTable@GitHub』をご参照ください。

DeleteTable

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

API

        /// <summary>
        /// 指定されたテーブル名に対応するテーブルを削除します。
        /// </summary>
        ///<param name = "request"> テーブル名を含むリクエストパラメーターです。 </param>
        ///<returns> DeleteTable から戻される情報です。 返されたインスタンスは null 値です。具体的な情報はありません。
        /// </returns>
        public DeleteTableResponse DeleteTable(DeleteTableRequest request);

        /// <summary>
        /// DeleteTable の非同期形式です。
        /// </summary>
        public Task<DeleteTableResponse> DeleteTableAsync(DeleteTableRequest request);
			

テーブルを削除します。

        var request = new DeleteTableRequest("SampleTable");
        try
        {
            otsClient.DeleteTable(request);
            Console.Writeline("Delete table succeeded.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Delete table failed, exception:{0}", ex.Message);
        }
			

コードの詳細は、『DeleteTable@GitHub』をご参照ください。