📅  最后修改于: 2023-12-03 15:14:49.514000             🧑  作者: Mango
DynamoDB是一种高度可伸缩性的NoSQL数据库服务,可处理任意规模的数据集。 DynamoDB是完全管理的服务,集成了安全性、备份和恢复、可复制性和调整性能等功能。 DynamoDB提供了多种API,以便在应用程序中访问和操作数据。
DynamoDB-操作工具是一个方便的python库,使得 Python developers 可以非常容易地操作DynamoDB数据库。使用这个工具,可以入读数据、查询数据、操作数据,以及可以很方便地进行数据的导入导出等操作。
pip install boto3
在使用 DynamoDB-操作工具前,必须要先创建 AWS 的账号,并且创建一个 IAM 安全访问密钥(Access key ID 和 Secret Access Key)。
import boto3
# 配置 AWS 的 Account ID 和 Access key ID
account_id = '123456789012'
access_key_id = 'ACCESS_KEY_ID'
secret_access_key = 'SECRET_ACCESS_KEY'
# 连接 DynamoDB 数据库
dynamodb = boto3.resource('dynamodb',
aws_secret_access_key=secret_access_key,
aws_access_key_id=access_key_id,
region_name='ap-northeast-1')
可以使用 DynamoDB-操作工具创建一个新的表格。
# 创建表格 schema
table_name = 'employee'
employee_table = dynamodb.create_table(
TableName=table_name,
KeySchema=[
{
'AttributeName': 'id',
'KeyType': 'HASH'
}
],
AttributeDefinitions=[
{
'AttributeName': 'id',
'AttributeType': 'N'
}
],
ProvisionedThroughput={
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10
}
)
一个 DynamoDB 表格由主键(Primary Key)来唯一标识每一行数据。插入数据的时候必须指定每一个数据的主键值。
employee_table = dynamodb.Table('employee')
employee_table.put_item(
Item={
'id': 1,
'first_name': 'John',
'last_name': 'Doe',
'age': 34,
'gender': 'Male',
'email': 'john.doe@example.com',
'address': {
'city': 'Seattle',
'state': 'WA',
'zipcode': 98101
}
}
)
可以使用 DynamoDB-操作工具查询一个 DynamoDB 表格中的数据。在查询数据的时候,必须指定主键的值。
employee_table = dynamodb.Table('employee')
response = employee_table.get_item(
Key={
'id': 1
}
)
item = response['Item']
print(item)
可以使用 DynamoDB-操作工具更新一个 DynamoDB 表格中的数据。在更新数据的时候,必须指定主键的值。
employee_table = dynamodb.Table('employee')
employee_table.update_item(
Key={
'id': 1
},
UpdateExpression='SET age = :val1',
ExpressionAttributeValues={
':val1': 30
}
)
可以使用 DynamoDB-操作工具删除一个 DynamoDB 表格中的数据。在删除数据的时候,必须指定主键的值。
employee_table = dynamodb.Table('employee')
employee_table.delete_item(
Key={
'id': 1
}
)
可以使用 DynamoDB-操作工具批量导入数据到 DynamoDB 数据库中。在导入数据的时候,必须指定主键的值。
employee_table = dynamodb.Table('employee')
with employee_table.batch_writer() as batch:
batch.put_item(
Item={
'id': 2,
'first_name': 'Jane',
'last_name': 'Doe',
'age': 28,
'gender': 'Female',
'email': 'jane.doe@example.com',
'address': {
'city': 'New York',
'state': 'NY',
'zipcode': 10001
}
}
)
batch.put_item(
Item={
'id': 3,
'first_name': 'Bob',
'last_name': 'Smith',
'age': 42,
'gender': 'Male',
'email': 'bob.smith@example.com',
'address': {
'city': 'San Francisco',
'state': 'CA',
'zipcode': 94101
}
}
)
可以使用 DynamoDB-操作工具批量导出数据从 DynamoDB 数据库中。批量导出数据需要使用 AWS CLI。
aws dynamodb scan --table-name employee --select "ALL_ATTRIBUTES" --output json > scan-results.json