DynamoDB, полностью управляемая служба баз данных NoSQL, предоставляемая Amazon Web Services (AWS), предлагает разработчикам масштабируемое и высокопроизводительное решение для обработки больших объемов данных. В этой статье блога мы рассмотрим различные методы и приемы, позволяющие максимально эффективно использовать DynamoDB, а также приведем примеры кода, иллюстрирующие их реализацию.
Содержание:
- Создание таблицы DynamoDB
- Добавление элементов в таблицу
- Извлечение элементов из таблицы
- Обновление элементов в таблице
- Удаление элементов из таблицы
- Запрос к таблице
- Сканирование таблицы
- Использование потоков DynamoDB
- Управление индексами
- Обработка условной записи
- Пакетные операции
- Оптимизация производительности
- Работа со сроком жизни (TTL)
- Резервное копирование и восстановление
Метод 1. Создание таблицы DynamoDB
Чтобы создать таблицу DynamoDB, вы можете использовать AWS SDK для предпочитаемого вами языка программирования. Вот пример использования AWS SDK для JavaScript:
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB();
const params = {
TableName: 'MyTable',
KeySchema: [
{ AttributeName: 'id', KeyType: 'HASH' }
// Primary Key
],
AttributeDefinitions: [
{ AttributeName: 'id', AttributeType: 'N' }
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};
dynamodb.createTable(params, (err, data) => {
if (err) {
console.error('Error creating table:', err);
} else {
console.log('Table created successfully:', data);
}
});
Метод 2: добавление элементов в таблицу
Чтобы добавить элементы в таблицу DynamoDB, вы можете использовать операцию putItem. Вот пример на Python с использованием AWS SDK для Python (Boto3):
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('MyTable')
item = {
'id': 1,
'name': 'John Doe',
'age': 30
}
response = table.put_item(Item=item)
print('Item added successfully:', response)
Метод 3: получение элементов из таблицы
Чтобы получить элементы из таблицы DynamoDB, вы можете использовать операцию getItem. Вот пример на Java с использованием AWS SDK для Java:
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.*;
DynamoDbClient client = DynamoDbClient.create();
GetItemRequest request = GetItemRequest.builder()
.tableName("MyTable")
.key(Map.of("id", AttributeValue.builder().n("1").build()))
.build();
GetItemResponse response = client.getItem(request);
System.out.println("Retrieved item: " + response.item());
Метод 4: обновление элементов в таблице
Чтобы обновить элементы в таблице DynamoDB, вы можете использовать операцию updateItem. Вот пример на Ruby с использованием AWS SDK для Ruby (AWS SDK для Ruby – версия 3):
require 'aws-sdk-dynamodb'
client = Aws::DynamoDB::Client.new
params = {
table_name: 'MyTable',
key: { id: 1 },
update_expression: 'SET #name = :name',
expression_attribute_names: { '#name' => 'name' },
expression_attribute_values: { ':name' => 'Jane Doe' }
}
client.update_item(params)
puts 'Item updated successfully'
Метод 5: удаление элементов из таблицы
Чтобы удалить элементы из таблицы DynamoDB, вы можете использовать операцию deleteItem. Вот пример на C# с использованием AWS SDK для.NET:
using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.Model;
var client = new AmazonDynamoDBClient();
var request = new DeleteItemRequest
{
TableName = "MyTable",
Key = new Dictionary<string, AttributeValue>
{
{ "id", new AttributeValue { N = "1" } }
}
};
client.DeleteItem(request);
Console.WriteLine("Item deleted successfully");