📜  DynamoDB教程(1)

📅  最后修改于: 2023-12-03 15:00:33.630000             🧑  作者: Mango

DynamoDB教程

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

您可以使用多种编程语言和 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 表。表包含 ArtistSongTitle 两个属性,并使用这两个属性作为分区键和排序键。接下来,我们使用 put_item 方法将一个项目插入到表中,然后使用 get_item 方法从表中获取该项目。

总结

通过本教程,您了解了 DynamoDB 的基本知识,包括数据模型,读/写容量单位和使用 AWS SDK 访问 DynamoDB。如需更多信息,请访问 DynamoDB 文档