DynamoDB: освоение базы данных NoSQL с примерами кода

DynamoDB, полностью управляемая служба баз данных NoSQL, предоставляемая Amazon Web Services (AWS), предлагает разработчикам масштабируемое и высокопроизводительное решение для обработки больших объемов данных. В этой статье блога мы рассмотрим различные методы и приемы, позволяющие максимально эффективно использовать DynamoDB, а также приведем примеры кода, иллюстрирующие их реализацию.

Содержание:

  1. Создание таблицы DynamoDB
  2. Добавление элементов в таблицу
  3. Извлечение элементов из таблицы
  4. Обновление элементов в таблице
  5. Удаление элементов из таблицы
  6. Запрос к таблице
  7. Сканирование таблицы
  8. Использование потоков DynamoDB
  9. Управление индексами
  10. Обработка условной записи
  11. Пакетные операции
  12. Оптимизация производительности
  13. Работа со сроком жизни (TTL)
  14. Резервное копирование и восстановление

Метод 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");