DynamoDB – это популярный сервис баз данных NoSQL, предоставляемый Amazon Web Services (AWS). Одним из важнейших аспектов DynamoDB является управление возможностями чтения и записи. В этой статье мы углубимся в различные режимы емкости, предлагаемые DynamoDB, и рассмотрим различные методы оптимизации доступа к данным. Попутно мы предоставим примеры кода, иллюстрирующие каждый метод.
- Режим мощности по требованию.
Режим мощности по требованию позволяет платить по запросу, устраняя необходимость планирования мощности. Вот пример использования режима мощности по требованию:
import boto3
# Create a DynamoDB resource
dynamodb = boto3.resource('dynamodb')
# Create a table with on-demand capacity mode
table = dynamodb.create_table(
TableName='my_table',
KeySchema=[
{
'AttributeName': 'id',
'KeyType': 'HASH'
}
],
AttributeDefinitions=[
{
'AttributeName': 'id',
'AttributeType': 'N'
}
],
BillingMode='PAY_PER_REQUEST'
)
- Режим предоставленной емкости.
Режим предоставленной емкости позволяет указать нужные единицы емкости чтения и записи для вашей таблицы. Вот пример:
import boto3
# Create a DynamoDB resource
dynamodb = boto3.resource('dynamodb')
# Create a table with provisioned capacity mode
table = dynamodb.create_table(
TableName='my_table',
KeySchema=[
{
'AttributeName': 'id',
'KeyType': 'HASH'
}
],
AttributeDefinitions=[
{
'AttributeName': 'id',
'AttributeType': 'N'
}
],
ProvisionedThroughput={
'ReadCapacityUnits': 50,
'WriteCapacityUnits': 25
}
)
- Режим автоматического масштабирования емкости.
Режим автоматического масштабирования емкости автоматически регулирует емкость чтения и записи в зависимости от структуры трафика приложения. Вот пример:
import boto3
# Create a DynamoDB resource
dynamodb = boto3.resource('dynamodb')
# Create a table with autoscaling capacity mode
table = dynamodb.create_table(
TableName='my_table',
KeySchema=[
{
'AttributeName': 'id',
'KeyType': 'HASH'
}
],
AttributeDefinitions=[
{
'AttributeName': 'id',
'AttributeType': 'N'
}
],
BillingMode='PAY_PER_REQUEST',
ProvisionedThroughput={
'ReadCapacityAutoScalingSettings': {
'MinimumUnits': 5,
'MaximumUnits': 100,
'AutoScalingDisabled': False,
'AutoScalingRoleArn': 'arn:aws:iam::123456789012:role/DynamoDBAutoscaleRole'
},
'WriteCapacityAutoScalingSettings': {
'MinimumUnits': 10,
'MaximumUnits': 200,
'AutoScalingDisabled': False,
'AutoScalingRoleArn': 'arn:aws:iam::123456789012:role/DynamoDBAutoscaleRole'
}
}
)
В этой статье мы рассмотрели различные режимы емкости, доступные в DynamoDB: по требованию, предоставление и автоматическое масштабирование. Мы предоставили примеры кода, чтобы продемонстрировать, как создавать таблицы с использованием каждого режима емкости. Понимая эти методы, вы сможете оптимизировать использование DynamoDB и обеспечить эффективный доступ к данным в соответствии с потребностями вашего приложения.