DynamoDB — это служба баз данных NoSQL, предоставляемая Amazon Web Services (AWS). Он разработан с учетом высокой масштабируемости, низкой задержки и полного управления, что делает его отличным выбором для приложений, которым требуется высокопроизводительное хранение и извлечение данных.
Ключевые возможности DynamoDB:
-
Управляемая служба. DynamoDB — это полностью управляемая служба. Это означает, что AWS отвечает за эксплуатационные аспекты базы данных, такие как предоставление оборудования, настройка, настройка и обслуживание. Это позволяет разработчикам сосредоточиться на создании своих приложений, а не на управлении инфраструктурой.
-
Масштабируемость. DynamoDB обеспечивает плавное масштабирование для обработки больших объемов данных и высокой частоты запросов. Он автоматически распределяет данные по нескольким серверам для обеспечения масштабируемости и производительности.
-
Высокая производительность: DynamoDB обеспечивает задержку в несколько миллисекунд для операций чтения и записи, что делает его подходящим для приложений, которым требуется быстрый и оперативный доступ к данным.
-
Гибкая схема: DynamoDB является базой данных NoSQL и не требует предопределенной схемы. Каждый элемент в таблице DynamoDB может иметь различный набор атрибутов, что позволяет создавать гибкие и динамические структуры данных.
Теперь давайте рассмотрим некоторые методы, доступные в DynamoDB SDK, на примерах кода:
-
Создание таблицы:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.create_table( TableName='my_table', KeySchema=[ { 'AttributeName': 'id', 'KeyType': 'HASH' } ], AttributeDefinitions=[ { 'AttributeName': 'id', 'AttributeType': 'N' } ], ProvisionedThroughput={ 'ReadCapacityUnits': 5, 'WriteCapacityUnits': 5 } ) print("Table created:", table.table_name) -
Помещение элемента в таблицу:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('my_table') response = table.put_item( Item={ 'id': 1, 'name': 'John Doe', 'age': 30 } ) print("Item added successfully:", response) -
Получение элемента из таблицы:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('my_table') response = table.get_item( Key={ 'id': 1 } ) item = response['Item'] print("Retrieved item:", item) -
Запрос элементов из таблицы:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('my_table') response = table.query( KeyConditionExpression='id = :val', ExpressionAttributeValues={ ':val': 1 } ) items = response['Items'] print("Query results:", items) -
Обновление элемента в таблице:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('my_table') response = table.update_item( Key={ 'id': 1 }, UpdateExpression='SET age = :val', ExpressionAttributeValues={ ':val': 31 } ) print("Item updated successfully:", response) -
Удаление элемента из таблицы:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('my_table') response = table.delete_item( Key={ 'id': 1 } ) print("Item deleted successfully:", response)
Это всего лишь несколько примеров методов, доступных в DynamoDB. Пакеты AWS SDK предоставляют исчерпывающую документацию и библиотеки для различных языков программирования, что позволяет разработчикам взаимодействовать с DynamoDB, используя предпочитаемый ими язык.