Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

处理表:.NET

您可以使用 适用于 .NET 的 AWS 开发工具包 创建、更新和删除表,以及列出您账户中所有的表或者获取有关某个特定表的信息。

下面是使用 适用于 .NET 的 AWS 开发工具包 执行表操作的常见步骤。

  1. 创建 AmazonDynamoDBClient 类(客户端)的实例。

  2. 通过创建对应的请求数据元,为操作提供必需参数和可选参数。

    例如,通过创建 CreateTableRequest 数据元来创建表,以及创建 UpdateTableRequest 数据元来更新现有表。

  3. 执行您在前面步骤中创建的客户端提供的适当方法。

注意

本节中的示例不适用于 .NET Core,因为它不支持同步方法。有关更多信息,请参阅适用于 .NET 的 AWS 异步 API

创建表

要创建表,您必须提供表名称、表的主键以及预置的吞吐量值。

以下介绍使用 .NET 低级 API 创建表的步骤。

  1. 创建 AmazonDynamoDBClient 类的实例。

  2. 创建 CreateTableRequest 类实例,以提供请求信息。

    您必须提供表名称、主键以及预置的吞吐量值。

  3. 以参数形式提供请求数据元,以执行 AmazonDynamoDBClient.CreateTable 方法。

以下 C# 代码段执行的就是上述步骤。该示例会创建一个表 (ProductCatalog),这个表将 Id 用作主键并使用预置的一组吞吐量值。您可以根据应用程序要求,使用 UpdateTable API 更新预置的吞吐量值。

Copy
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ProductCatalog"; var request = new CreateTableRequest { TableName = tableName, AttributeDefinitions = new List<AttributeDefinition>() { new AttributeDefinition { AttributeName = "Id", AttributeType = "N" } }, KeySchema = new List<KeySchemaElement>() { new KeySchemaElement { AttributeName = "Id", KeyType = "HASH" //Partition key } }, ProvisionedThroughput = new ProvisionedThroughput { ReadCapacityUnits = 10, WriteCapacityUnits = 5 } }; var response = client.CreateTable(request);

您必须等待 DynamoDB 创建该表并将表的状态设置为 ACTIVE。该 CreateTable 响应中包含 TableDescription 属性,从而提供必要的表信息。

Copy
var result = response.CreateTableResult; var tableDescription = result.TableDescription; Console.WriteLine("{1}: {0} \t ReadCapacityUnits: {2} \t WriteCapacityUnits: {3}", tableDescription.TableStatus, tableDescription.TableName, tableDescription.ProvisionedThroughput.ReadCapacityUnits, tableDescription.ProvisionedThroughput.WriteCapacityUnits); string status = tableDescription.TableStatus; Console.WriteLine(tableName + " - " + status);

您也可以调用客户端 DescribeTable 方法,随时获得表信息。

Copy
var res = client.DescribeTable(new DescribeTableRequest{TableName = "ProductCatalog"});

更新表

您可以仅更新现有表的预置吞吐量值。您可能需要根据应用程序的要求更新这些值。

注意

您可以根据需要多次增加吞吐容量,并在单个 UTC 日历日内将每个表的吞吐容量减少最多 九次。有关更多信息,请参阅 DynamoDB 中的限制

以下介绍使用 .NET 低级 API 更新表的步骤。

  1. 创建 AmazonDynamoDBClient 类的实例。

  2. 创建 UpdateTableRequest 类实例,以提供请求信息。

    您必须提供表名称和新的预置吞吐量值。

  3. 以参数形式提供请求数据元,以执行 AmazonDynamoDBClient.UpdateTable 方法。

以下 C# 代码段执行的就是上述步骤。

Copy
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ExampleTable"; var request = new UpdateTableRequest() { TableName = tableName, ProvisionedThroughput = new ProvisionedThroughput() { // Provide new values. ReadCapacityUnits = 20, WriteCapacityUnits = 10 } }; var response = client.UpdateTable(request);

删除表

以下介绍使用 .NET 低级 API 删除表的步骤。

  1. 创建 AmazonDynamoDBClient 类的实例。

  2. 创建一个 DeleteTableRequest 类的实例,并提供您想要删除的表的名称。

  3. 以参数形式提供请求数据元,以执行 AmazonDynamoDBClient.DeleteTable 方法。

以下 C# 代码段执行的就是上述步骤。

Copy
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string tableName = "ExampleTable"; var request = new DeleteTableRequest{ TableName = tableName }; var response = client.DeleteTable(request);

列出表

要使用适用于 .NET 的 AWS 开发工具包低级 API 列出您账户中的表,请创建一个 AmazonDynamoDBClient 实例,并执行 ListTables 方法。ListTables 操作无需使用参数。但是,您可以指定可选参数。例如,如果您想要通过分页限制每页中表名称的数量,可以设置 Limit 参数。这需要您创建 ListTablesRequest 数据元并提供一些可选参数,如以下 C# 代码段所示。在设置页面大小的同时,该请求还设置了 ExclusiveStartTableName 参数。ExclusiveStartTableName 初始为空,但在抓取第一页结果之后,您必须将该参数的值设置为当前结果的 LastEvaluatedTableName 属性才能检索下一页。

Copy
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Initial value for the first page of table names. string lastEvaluatedTableName = null; do { // Create a request object to specify optional parameters. var request = new ListTablesRequest { Limit = 10, // Page size. ExclusiveStartTableName = lastEvaluatedTableName }; var response = client.ListTables(request); ListTablesResult result = response.ListTablesResult; foreach (string name in result.TableNames) Console.WriteLine(name); lastEvaluatedTableName = result.LastEvaluatedTableName; } while (lastEvaluatedTableName != null);