В этом уроке мы по шагам рассмотрим несколько простых примеров вставки и получения данных в DynamoDB. Вы создадите собственную таблицу DynamoDB с помощью API CreateTable,а затем вставите в нее несколько элементов с помощью вызова API BatchWriteItem. И, наконец, вы выполните извлечение элементов с помощью вызова API GetItem. Прежде чем вы приступите к работе с этими примерами, мы обсудим модель данных, которую необходимо использовать в вашем приложении книжного онлайн-магазина.
В последующих модулях вы узнаете, как извлечь несколько элементов за один раз с помощью вызова API Query и как включить дополнительные шаблоны запросов, используя второстепенные индексы. Вы также узнаете, как обновлять имеющиеся элементы в таблице.
Время, необходимое для прохождения модуля: 15 минут
В данном модуле ключевую роль играют указанные ниже понятия DynamoDB.
- Таблица. Это коллекция записей данных DynamoDB.
- Элемент. Одна запись данных в таблице DynamoDB. Это понятие сравнимо со строкой в реляционной базе данных.
- Атрибут. Один элемент данных в элементе. Это понятие сравнимо со столбцом в реляционной базе данных. Тем не менее в отличие от столбцов в реляционной базе данных при создании таблицы не нужно указывать атрибуты, отличные от первичного ключа, который мы обсудим далее в этом модуле. Атрибуты могут иметь как простой (например, строка, целое или логическое значение), так и сложный тип (например, список или сопоставление).
- Первичный ключ. Первичный ключ – это уникальный идентификатор для одного элемента в таблице DynamoDB. Имя и тип первичного ключа необходимо указывать при создании таблицы. Более того, первичный ключ указанного типа необходимо включать в каждый элемент, записываемый в таблицу. Простой первичный ключ состоит из одного атрибута, а составной первичный ключ – из двух: ключа секции и ключа сортировки. Например, вы можете создать простой первичный ключ, используя код пользователя UserID в качестве идентификатора, либо создать составной первичный ключ, объединив код пользователя UserID и дату создания Creation_Date в идентификаторе элемента.
При создании приложения всегда разрабатывайте модели данных, необходимые для работы логики приложения. В структуре такой модели данных необходимо учесть потребности в доступе к данным (как для записи, так и для чтения), которые будут необходимы для работы приложения.
DynamoDB – это нереляционная база данных. При использовании нереляционных баз данных не нужно заранее указывать полную схему при создании таблицы. Достаточно только объявить первичный ключ для таблицы, который будет использоваться для уникальной идентификации каждой записи в таблице. Это позволяет уменьшить предварительные издержки на разработку модели данных, так как вы можете с легкостью изменять схему по мере изменения потребностей приложения.
Как было упомянуто в разделе «Базовые материалы для создания приложения» главы «Введение» данного руководства, вашему приложению необходимо получать сведения об отдельной книге по ее названию и автору. Так как сочетание названия и автора представляет собой уникальный идентификатор книги, вы можете использовать эти атрибуты в качестве первичного ключа для своей таблицы. Вашему приложению также необходимо хранить информацию о категории книги (например, «История» или «Биографии») и сведения о доступных форматах книги (твердый или мягкий переплет либо аудиокнига), которые сопоставлены с номерами элементов в вашей системе учета.
Учитывая эти потребности, вы можете использовать для своей таблицы указанную ниже схему.
- Title (строка): название книги
- Author (строка): автор книги
- Category (строка): категория книги, например «История», «Биографии» или «Научная фантастика»
- Formats (перечень): различные доступные форматы продаваемых книг (твердый или мягкий переплет либо аудиокнига) и их номера в вашей системе учета
Выполнив описанные ниже действия, вы создадите таблицу, указав для нее составной первичный ключ (Author и Title). Затем вы загрузите несколько элементов в свою таблицу и получите отдельные элементы из нее.