Amazon DynamoDB - это сервис управления базами данных. Позиционируются эти базы как NoSQL
, но на самом деле являются чем-то средним между MongoDB & SQL
, так как имеют таблицы и одновременно гибкую структуру. Данный сервис берет на себя управление аппаратными и программными ресурсами базы данных. Так же DynamoDB
позволяет динамически масштабировать ресурсы под БД в зависимости от нагрузки в каждый конкретный момент. Что, кстати, и влияет на стоимость услуги. По сути подписчики оплачивают требуемую производительность.
Работать с Amazon DynamoDB
можно либо через Консоль управления AWS, либо посредством API Amazon DynamoDB
. Amazon рекомендует не использовать низкоуровневый API
напрямую, а через один из наборов разработки программного обеспечения AWS (SDK)
для вашего языка программирования. SDK AWS
позаботятся о проверке подлинности запроса, сериализации и управлении соединениями. Обособленно стоит AWS CLI
- естественно DynamoDB
управляется из терминала как и любой другой сервис Amazon
. Не путать с, так называемой, консолью управления AWS
, которая, по сути, является ВЕБ-интерфейсом.
В Amazon DynamoDB используются следующие модели данных.
Amazon DynamoDB
сохраняет структурированные данные, индексированные по первичному ключу, и обеспечивает низкие задержки при выполнении операций чтения и записи элементов размером от 1
байта до 400
КБ.
Таблица: представляет собой совокупность элементов данных, подобную совокупности строк в таблице реляционной базы данных. Каждая таблица может иметь бесконечное количество элементов данных. Amazon DynamoDB
– сервис с гибким описанием данных, где элементы данных в таблице не обязаны обладать одинаковыми атрибутами или даже равным количеством атрибутов. Каждая таблица должна иметь свой первичный ключ. Первичный ключ может являться ключом с одним атрибутом или ключом со сложным атрибутом, включающим в себя два атрибута. Атрибуты, назначаемые в качестве первичного ключа, должны существовать для каждого элемента в виде первичного ключа, уникально определяющего каждый из элементов в таблице.
Элемент: элемент состоит из первичного или сложного ключа и переменного количества атрибутов. Явно заданных ограничений по количеству атрибутов, связанных с отдельным элементом, не существует, однако суммарный размер элемента, включая все имена и значения атрибутов, не должен превышать 400 КБ.
Атрибут: каждый атрибут, связанный с элементом данных, состоит из имени атрибута (например, «цвет») и значения или набора значений (например, «красный» или «красный, желтый, зеленый»). Отдельные атрибуты не имеют явно заданных ограничений по размеру, но общее значение элемента (включая все имена и значения атрибута) не должно превышать 400 КБ.
Какие существуют API
- CreateTable: создает таблицу и указывает первичный индекс, используемый для доступа к данным.
- UpdateTable: изменяет значения выделенной пропускной способности для данной таблицы.
- DeleteTable: удаляет таблицу.
- DescribeTable: возвращает размер и состояние таблицы, а также информацию об индексе.
- ListTables: возвращает список всех таблиц, связанных с текущим аккаунтом и адресом/URL сервера.
- PutItem: создает новый элемент или заменяет старый элемент новым (включая все атрибуты). Если элемент уже существует в указанной таблице с тем же первичным ключом, новый элемент полностью заменяет собой существующий элемент. Кроме того, можно использовать условные операторы для замены элемента только в том случае, когда его атрибуты будут соответствовать определенным условиям, или для вставки нового элемента только в том случае, если элемент еще не существует.
- BatchWriteItem: выполняет вставку, замену и удаление нескольких элементов в нескольких таблицах в рамках одного запроса, но не в рамках одной транзакции. Поддерживает пакеты, содержащие до 25 операций
Put
илиDelete
, с максимальным общим размером запроса в16
МБ. - UpdateItem: выполняет редактирование атрибутов существующего элемента. Можно также использовать условные операторы для выполнения редактирования только в том случае, когда значения атрибута элемента будут соответствовать определенным условиям.
- DeleteItem: удаляет отдельный элемент в таблице по первичному ключу. Можно также использовать условные операторы для удаления элемента только в том случае, когда значения атрибута элемента будут соответствовать определенным условиям.
- GetItem: операция
GetItem
возвращает перечень атрибутов элемента, соответствующего первичному ключу. ОперацияGetItem
по умолчанию выполняет потенциально непротиворечивое чтение. Если в вашем приложении недопустимо использовать потенциально непротиворечивое чтение, используйте параметрConsistentRead
. - BatchGetItem: операция
BatchGetItem
возвращает атрибуты нескольких элементов из нескольких таблиц, используя их первичные ключи. Размер каждого ответа ограничен16
МБ; каждый ответ может вернуть до100
элементов. Поддерживается как строгая, так и потенциальная непротиворечивость. - Query: извлекает один или несколько элементов с помощью первичного ключа таблицы или из вторичного индекса с помощью ключа индекса. Рабочую область запроса в таблице можно сузить с помощью операторов или выражений сравнения. Дополнительно можно отфильтровать результаты выполнения запроса с помощью фильтров по неключевым атрибутам. Поддерживается как строгая, так и потенциальная непротиворечивость. Размер каждого ответа ограничен
1
МБ. - Scan: извлекает все элементы и атрибуты в результате полного сканирования таблицы или вторичного индекса. Набор возвращаемых элементов можно ограничить с помощью фильтров по одному или нескольким атрибутам.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты