📅  最后修改于: 2023-12-03 15:00:33.630000             🧑  作者: Mango
DynamoDB 是一个完全托管的 NoSQL 数据库服务,由 AWS 提供。它支持对象和文档数据模型,并允许在毫秒级别内支持数百万请求。本教程将介绍 DynamoDB 的基础知识,包括数据模型,读/写容量单位和如何使用 AWS SDK 访问 DynamoDB。
DynamoDB 使用一个基于键值对的模型,其中每个项目由一个主键和零个或多个属性组成。主键可以是分区键(Partition Key)或分区键和排序键(Sort Key)的组合。这些键的组合是 DynamoDB 表中的唯一标识符。
以下是一个简单的示例,显示了一个具有分区键和排序键的 DynamoDB 表:
| Partition Key | Sort Key | Attribute 1 | Attribute 2 | | :------------ | :------ | :---------- | :---------- | | UserID1 | Time1 | Value1 | Value2 | | UserID1 | Time2 | Value3 | Value4 | | UserID2 | Time3 | Value5 | Value6 |
在此示例中,UserID
是分区键,Time
是排序键。您可以使用 UserID
访问所有与该特定用户相关的项目,并使用 Time
按时间顺序访问该用户的所有项目。
DynamoDB 使用读容量单位(Read Capacity Units,简称 RCU)和写容量单位(Write Capacity Units,简称 WCU)来衡量表的吞吐量。每秒钟每个 RCU 可以读取 4 KB 的数据,每秒钟每个 WCU 可以写入一个项目(最多 1 KB)。初始的 RCU 和 WCU 是根据表的大小和使用情况自动配置的,但是您可以在必要时改变它们。
您可以使用多种编程语言和 AWS SDK 轻松访问 DynamoDB。例如,以下是一个使用 Python 和 Boto3 SDK 访问 DynamoDB 的示例代码:
import boto3
# Create the DynamoDB client.
dynamodb = boto3.client('dynamodb')
# Create or update a table.
table_name = 'my-table'
key_schema = [
{
'AttributeName': 'Artist',
'KeyType': 'HASH'
},
{
'AttributeName': 'SongTitle',
'KeyType': 'RANGE'
}
]
attribute_definitions = [
{
'AttributeName': 'Artist',
'AttributeType': 'S'
},
{
'AttributeName': 'SongTitle',
'AttributeType': 'S'
}
]
provisioned_throughput = {
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
}
dynamodb.create_table(
TableName=table_name,
KeySchema=key_schema,
AttributeDefinitions=attribute_definitions,
ProvisionedThroughput=provisioned_throughput
)
# Put an item into the table.
item = {
'Artist': {'S': 'Taylor Swift'},
'SongTitle': {'S': 'Shake It Off'},
'Year': {'N': '2014'}
}
dynamodb.put_item(
TableName=table_name,
Item=item
)
# Get an item from the table.
key = {
'Artist': {'S': 'Taylor Swift'},
'SongTitle': {'S': 'Shake It Off'}
}
response = dynamodb.get_item(
TableName=table_name,
Key=key
)
print(response['Item'])
在此示例中,我们首先创建了一个名为 my-table
的 DynamoDB 表。表包含 Artist
和 SongTitle
两个属性,并使用这两个属性作为分区键和排序键。接下来,我们使用 put_item
方法将一个项目插入到表中,然后使用 get_item
方法从表中获取该项目。
通过本教程,您了解了 DynamoDB 的基本知识,包括数据模型,读/写容量单位和使用 AWS SDK 访问 DynamoDB。如需更多信息,请访问 DynamoDB 文档。