AWS DynamoDB是一种托管的NoSQL数据库服务,使用分区键来支持数据分区和可伸缩性。例如,假设有一个'用户”表,其中包含每个用户的ID、姓名和电子邮件地址。要在DynamoDB中创建此表,必须指定分区键和(或)排序键。
在选择分区键时,应考虑以下因素:
以下是一个示例,其中'用户ID”属性用作分区键:
import boto3
dynamodb = boto3.client('dynamodb')
table = dynamodb.create_table( TableName='users', KeySchema=[ { 'AttributeName': 'user_id', 'KeyType': 'HASH' }, { 'AttributeName': 'name', 'KeyType': 'RANGE' } ], AttributeDefinitions=[ { 'AttributeName': 'user_id', 'AttributeType': 'N' }, { 'AttributeName': 'name', 'AttributeType': 'S' } ], ProvisionedThroughput={ 'ReadCapacityUnits': 5, 'WriteCapacityUnits': 5 } )
table.meta.client.get_waiter('table_exists').wait(TableName='users')
response = dynamodb.put_item( TableName='users', Item={ 'user_id': { 'N': '1' }, 'name': { 'S': 'John Doe' }, 'email': { 'S': 'john.doe@example.com' } } )
print(response) # 输出数据插入结果
需要注意的是,选择分区键是根据表中数据的访问模式和数据分布而定的,并且要在数据的生命周期内保持一致。如果需要更改分区键,则需要考虑迁移数据