Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Модуль 1. Урок 0. DynamoDB. Java для веб-сервисов Amazon (AWS)

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

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: извлекает все элементы и атрибуты в результате полного сканирования таблицы или вторичного индекса. Набор возвращаемых элементов можно ограничить с помощью фильтров по одному или нескольким атрибутам.

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 900 практических заданий в браузере
  • 360 000 студентов
Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»