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);
例
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』をご参照ください。