Big*_*ile 0 amazon-web-services node.js aws-cloudformation amazon-dynamodb
我是 DynamoDb 的新手,我确实查看了 AWS 文档以及一些有关 Hash 和 Range 键的问题。毕竟,我仍然不确定它们的确切含义以及您为什么/如何使用它们。有人可以用一个例子给我一个简单的解释吗?
例如,如果我想创建一个Movie有桌子Name,Genre,Rating和DateReleased列。创建 DynamoDb 表的正确方法是什么。在下面的示例中,我有一些 CloudFormation 来尝试创建以下内容,但我不确定我是否正确使用了 KeySchema 属性。任何帮助,将不胜感激。
MovieTable:
Type: AWS::DynamoDB::Table
Properties:
BillingMode: PAY_PER_REQUEST
AttributeDefinitions:
- AttributeName: "Name"
AttributeType: "S"
- AttributeName: "Genre"
AttributeType: "S"
- AttributeName: "Rating"
AttributeType: "N"
- AttributeName: "DateReleased"
AttributeType: "S"
KeySchema:
- AttributeName: "Name"
KeyType: "HASH"
- AttributeName: "Genre"
KeyType: "RANGE"
- AttributeName: "Rating"
KeyType: "RANGE"
- AttributeName: "DateReleased"
KeyType: "RANGE"
TimeToLiveSpecification:
AttributeName: ExpireAfter
Enabled: false
SSESpecification:
SSEEnabled: true
Run Code Online (Sandbox Code Playgroud)
这里有2个案例
情况 1:哈希键由唯一标识项目的单个属性组成。
举些例子:
一种。如果您正在设计一个表来存储学生数据,您可以将 HashKey 定义为 Student_Id
湾 如果你正在设计一个表来存储类数据,你可以将 HashKey 定义为 Class_Id
案例 2:哈希和范围键由两个属性组成,它们共同唯一地标识一个项目
举些例子:
一种。如果您正在设计一个表来存储购物车,您可以将 HashKey 定义为 Product_Id,将 Range Key(排序键)定义为 User_Id。换句话说,Production_Id 和 User_Id 的组合在您的表中必须是唯一的。
湾 如果您正在设计一个表来存储音乐信息,您可以将 HashKey 定义为艺术家,将范围键定义为“歌曲标题”。换句话说,艺术家和“歌曲标题”的组合在您的表格中必须是唯一的。
现在,对于您的用例,您可以将 Movie 表定义为
HashKey:电影名称
SortKey:发布日期
类型:属性
评价:属性
使用这种设计,这里的假设是只有 1 个“电影标题”能够在 1 个特定日期发布。换句话说,不可能有多部同名电影在同一天上映。
希望您现在可以定义 cloudformation。如果没有,请告诉我们,我们会提供帮助。
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |