表格存储的 SDK 提供了 CreateTable、ListTable、DeleteTable、UpdateTable 和 DescribeTable 等表级别的操作接口。
创建表(CreateTable)
根据给定的表的结构信息创建相应的表。
创建表格存储的表时必须指定表的主键。主键包含 1~4 个主键列,每一个主键列都有名字和类型。
接口/// <summary>
/// 根据表信息(包含表名、主键的设计和预留读写吞吐量)创建表。
/// </summary>
/// <param name="request">请求参数</param>
/// <returns>CreateTable的返回,这个返回实例是空的,不包含具体信息。
/// </returns>
public CreateTableResponse CreateTable(CreateTableRequest request);
/// <summary>
/// CreateTable的异步形式。
/// </summary>
public Task<CreateTableResponse> CreateTableAsync(CreateTableRequest request);
提示:
表格存储的表在被创建之后需要几秒钟进行加载,创建成功后需要等待几秒钟后再做其他操作。
示例
创建一个有 2 个主键列,预留读/写吞吐量为 (0,0) 的表。
//创建主键列的schema,包括PK的个数,名称和类型
//第一个PK列为整数,名称是pk0,这个同时也是分片列
//第二个PK列为字符串,名称是pk1
var primaryKeySchema = new PrimaryKeySchema();
primaryKeySchema.Add("pk0", ColumnValueType.Integer);
primaryKeySchema.Add("pk1", ColumnValueType.String);
//通过表名和主键列的schema创建一个tableMeta
var tableMeta = new TableMeta("SampleTable", primaryKeySchema);
// 设定预留读吞吐量为0,预留写吞吐量为0
var reservedThroughput = new CapacityUnit(0, 0);
try
{
// 构造CreateTableRequest对象
var request = new CreateTableRequest(tableMeta, reservedThroughput);
// 调用client的CreateTable接口,如果没有抛出异常,则说明成功,否则失败
otsClient.CreateTable(request);
Console.WriteLine("Create table succeeded.");
}
// 处理异常
catch (Exception ex)
{
Console.WriteLine("Create table failed, exception:{0}", ex.Message);
}
提示:
详细代码:
CreateTable@GitHub。
列出表名称(ListTable)
获取当前实例下已创建的所有表的表名。
接口/// <summary>
/// 获取当前实例下已创建的所有表的表名。
/// </summary>
/// <param name="request">请求参数</param>
/// <returns>ListTable的返回,用来获取表名列表。</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)
更新指定表的预留读吞吐量或预留写吞吐量设置。
接口/// <summary>
/// 更新指定表的预留读吞吐量或预留写吞吐量,新设定将于更新成功一分钟内生效。
/// </summary>
/// <param name="request">请求参数,包含表名以及预留读写吞吐量</param>
/// <returns>包含更新后的预留读写吞吐量等信息</returns>
public UpdateTableResponse UpdateTable(UpdateTableRequest request);
/// <summary>
/// UpdateTable的异步形式。
/// </summary>
public Task<UpdateTableResponse> UpdateTableAsync(UpdateTableRequest request);
示例
更新表的 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)
查询指定表的结构信息和预留读/写吞吐量设置信息。
接口/// <summary>
/// 查询指定表的结构信息和预留读写吞吐量设置信息。
/// </summary>
/// <param name="request">请求参数,包含表名</param>
/// <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)
{
//如果抛出异常,则说明执行失败,打印错误信息
Console.WriteLine("Describe table failed, exception:{0}", ex.Message);
}
提示:
详细代码:
DescribeTable@GitHub。
删除表(DeleteTable)
删除本实例下指定的表。
接口/// <summary>
/// 根据表名删除表。
/// </summary>
/// <param name="request">请求参数,包含表名</param>
/// <returns>DeleteTable的返回,这个返回实例是空的,不包含具体信息。
/// </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。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。