📅  最后修改于: 2023-12-03 14:59:26.361000             🧑  作者: Mango
AWS DynamoDB是一种快速、灵活的NoSQL数据库服务,可用于存储和检索任意数量和类型的数据。数据以键-值对的形式存储,并且可以根据需要进行扩展以支持高吞吐量和低延迟的应用程序。
本文将介绍如何使用AWS SDK for Python(Boto3)将数据写入DynamoDB表。
首先,确保您已在本地计算机上安装了Boto3库。如果尚未安装,请按照以下步骤进行安装:
$ pip install boto3
在使用Boto3之前,您需要配置AWS凭证。您可以通过多种方式配置凭证,例如使用环境变量、配置文件或IAM角色。这里我们将使用配置文件方式。
创建一个名为~/.aws/credentials
的文件,并将以下内容添加到文件中:
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
将YOUR_ACCESS_KEY
和YOUR_SECRET_ACCESS_KEY
替换为您的AWS访问密钥。
在编写代码之前,首先创建一个DynamoDB客户端,用于与DynamoDB服务进行交互。
import boto3
dynamodb = boto3.client('dynamodb')
在将数据写入表之前,需要先创建表并定义表的结构。以下示例代码演示如何创建一个名为my_table
的DynamoDB表,并指定主键和其他属性。
table_name = 'my_table'
key_schema = [
{'AttributeName': 'id', 'KeyType': 'HASH'},
{'AttributeName': 'timestamp', 'KeyType': 'RANGE'}
]
attribute_definitions = [
{'AttributeName': 'id', 'AttributeType': 'S'},
{'AttributeName': 'timestamp', 'AttributeType': 'N'}
]
provisioned_throughput = {
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
}
dynamodb.create_table(
TableName=table_name,
KeySchema=key_schema,
AttributeDefinitions=attribute_definitions,
ProvisionedThroughput=provisioned_throughput
)
在上述代码中,我们定义了一个包含两个属性的表,id
和timestamp
,并指定了它们的类型。id
属性为字符串类型,timestamp
属性为数值类型。主键由id
和timestamp
属性组成。
现在可以使用put_item
方法将数据写入表中。以下示例代码演示了如何向上面创建的表中写入一条数据。
item = {
'id': {'S': '1'},
'timestamp': {'N': '1637282567'},
'name': {'S': 'John Doe'},
'age': {'N': '25'}
}
response = dynamodb.put_item(
TableName=table_name,
Item=item
)
在上述代码中,我们定义了一个包含id
、timestamp
、name
和age
属性的数据项。使用put_item
方法将数据项写入表中。
最后,在程序结束之前,我们需要关闭DynamoDB客户端。
dynamodb.close()
本文介绍了如何使用AWS DynamoDB和Boto3库将数据写入表的步骤。您可以根据实际需求定义表结构并使用put_item
方法将数据写入表中。