关系(SQL)数据库和 DynamoDB 在创建表方面的差异
表是关系数据库和 Amazon DynamoDB 中的基本数据结构。关系数据库管理系统 (RDBMS) 要求您在创建表时定义表的架构。相比之下,DynamoDB 表没有架构—与主键不同,您在创建表时无需定义任何属性或数据类型。
以下章节将使用 SQL 创建表的方式与使用 DynamoDB 创建表的方式进行了比较。
使用 SQL 创建表
通过 SQL,您将使用 CREATE TABLE
语句创建表,如以下示例所示。
CREATE TABLE Music ( Artist VARCHAR(20) NOT NULL, SongTitle VARCHAR(30) NOT NULL, AlbumTitle VARCHAR(25), Year INT, Price FLOAT, Genre VARCHAR(10), Tags TEXT, PRIMARY KEY(Artist, SongTitle) );
此表的主键包含 Artist 和 SongTitle。
您必须定义表的所有列和数据类型以及表的主键。(如有必要,您稍后可以使用 ALTER TABLE
语句更改这些定义。)
许多 SQL 实现可让您将表的存储规范定义为 CREATE TABLE
语句的一部分。除非另外指明,否则使用默认存储设置创建表。在生产环境中,数据库管理员可以帮助确定最佳存储参数。
使用 DynamoDB 创建表
使用 CreateTable
操作可创建预调配的模式表,同时指定参数,如下所示:
{ TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "HASH" //Partition key }, { AttributeName: "SongTitle", KeyType: "RANGE" //Sort key } ], AttributeDefinitions: [ { AttributeName: "Artist", AttributeType: "S" }, { AttributeName: "SongTitle", AttributeType: "S" } ], ProvisionedThroughput: { // Only specified if using provisioned mode ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }
此表的主键包括 Artist(分区键)和 SongTitle(排序键)。
您必须向 CreateTable
提供以下参数: