Что такое DynamoDB?

Вопрос: Что такое Amazon DynamoDB?

DynamoDB – это быстрый и гибкий сервис для создания нереляционных баз данных любого масштаба. DynamoDB дает клиентам возможность переложить на AWS административную нагрузку, связанную с управлением распределенными базами данных и их масштабированием, а значит, избавиться от необходимости приобретать оборудование, настраивать и конфигурировать его, а также решать вопросы репликации, обновления ПО, планирования ресурсов для поддержания необходимой пропускной способности и масштабирования кластеров.

Вопрос: Какие виды управления берет на себя DynamoDB?

DynamoDB позволяет решить основные проблемы при масштабировании баз данных: проблему управления ПО баз данных и выделения аппаратного обеспечения, необходимого для его работы. Теперь развертывать нереляционные базы данных можно за считаные минуты. Сервис DynamoDB автоматически масштабирует пропускную способность для соответствия текущей рабочей нагрузке и способен многократно разбивать данные по мере расширения таблиц. DynamoDB также выполняет синхронную репликацию данных в трех ЦОД региона AWS, обеспечивая высокую доступность и сохранность данных.

Вопрос: Какая модель непротиворечивости используется в DynamoDB?

При чтении данных из DynamoDB можно указать модель непротиворечивости чтения: потенциально непротиворечивое или строго непротиворечивое.

  • Чтение потенциально непротиворечивых данных (модель по умолчанию) позволяет максимально увеличить пропускную способность чтения. Однако чтение потенциально непротиворечивых данных может не отражать результаты недавно выполненных записей. Непротиворечивость всех копий данных, как правило, достигается в течение секунды. Обновленные данные обычно поступают при повторном чтении через некоторое время.
  • Чтение строго непротиворечивых данных. Кроме потенциальной непротиворечивости, DynamoDB также предоставляет гибкую и управляемую возможность выдачи запросов чтения строго непротиворечивых данных, если таковые требуются для приложения или его модуля. Чтение строго непротиворечивых данных возвращает результат, в котором отражены все записи, получившие отклик об успешном завершении перед совершением операции чтения.
  • Транзакции ACID: транзакции DynamoDB обеспечивают разработчикам атомарность, непротиворечивость, изолированность, долговечность (ACID) одной или нескольких таблиц в одном аккаунте AWS и в одном регионе. Транзакции можно использовать при создании приложений, требующих скоординированных вставок, удалений и обновлений нескольких элементов, как части одной логической бизнес-операции.

Начало работы

Вопрос: Какие функциональные возможности запросов поддерживает DynamoDB?

DynamoDB поддерживает операции GET / PUT с использованием заданного пользователем первичного ключа. Первичный ключ – единственный обязательный атрибут объекта в таблице. Первичный ключ устанавливается при создании таблицы и является уникальным идентификатором каждого объекта. DynamoDB предлагает гибкие возможности работы с запросами: дополнительно можно запрашивать атрибуты по ключам, не являющимся первичными, с помощью глобальных и локальных вторичных индексов.

Первичный ключ может быть либо простым ключом секции (из одного атрибута), либо составным (из ключа секции и ключа сортировки). Пример ключа секции, состоящего из одного атрибута, – UserID. Такой простой ключ секции позволит быстро выполнять чтение и запись данных для элемента, связанного с конкретным ID пользователя.

Составной ключ секции и сортировки индексируется в DynamoDB по элементу ключа секции и элементу ключа сортировки. Этот сложный ключ поддерживает иерархию между первым и вторым значением элемента. Например, составной ключ секции и сортировки может представлять собой комбинацию UserID (секция) и Timestamp (сортировка). Поддерживая значение элемента ключа секции постоянным, можно выполнять поиск по элементу ключа сортировки для извлечения определенных данных. Такой поиск позволит использовать API Query, например, для извлечения всех объектов для одного UserID в определенном диапазоне временных меток.

Вопрос: Каким образом выполняется обновление и запрос элементов данных в DynamoDB?

После создания таблицы с помощью консоли DynamoDB или API CreateTable для вставки элементов можно использовать API PutItem или BatchWriteItem. Для извлечения элементов, добавленных в таблицу, можно использовать такие API, как GetItem и BatchGetItem, а также API Query, если в таблице включены и используются составные первичные ключи.

Вопрос: DynamoDB можно использовать с приложениями, работающими под управлением любых операционных систем?

Да. DynamoDB – это полностью управляемый облачный сервис, доступ к которому осуществляется через API. DynamoDB можно использовать с приложениями, работающими под управлением любых операционных систем, включая Linux, Windows, iOS, Android, Solaris, AIX и HP‑UX. Для начала работы с DynamoDB рекомендуется использовать пакеты SDK AWS.

Планирование

Вопрос: Как начисляется плата за использование DynamoDB?

Каждой таблице DynamoDB выделена некоторая пропускная способность для операций чтения и операций записи. Оплата начисляется за каждый час использования ресурсов пропускной способности. Обратите внимание на то, что плата за ресурсы пропускной способности взимается на почасовой основе независимо от того, выполняются ли запросы к таблице. Изменить ресурсы выделенной пропускной способности таблицы можно с помощью Консоли управления AWS, API UpdateTable или API PutScalingPolicy для автоматического масштабирования. Дополнительно в DynamoDB начисляется плата за объем данных в хранилище, а также за передачу данных через Интернет по стандартным тарифам.

Подробную информацию о ценах на DynamoDB см. на странице цен на DynamoDB.

Вопрос: Какую наибольшую пропускную способность можно выделить для одной таблицы DynamoDB?

Максимальная пропускная способность для таблиц DynamoDB практически ничем не ограничена. Подробнее о том, какие ограничения действуют, см. в разделе Limits in DynamoDB. Если требуется увеличить действующий лимит, свяжитесь с Amazon.  

Вопрос: Какую наименьшую пропускную способность можно выделить для одной таблицы DynamoDB?

Минимальный объем выделенной пропускной способности, который можно запросить, – одна единица ресурса чтения и одна единица ресурса записи (как при использовании автомасштабирования, так и при выделении пропускной способности вручную). Такие значения входят в уровень бесплатного пользования, который включает 25 единиц ресурса записи и 25 единиц ресурса чтения. Уровень бесплатного пользования применяется ко всему аккаунту, а не к отдельной таблице. Иными словами, если вы увеличили выделенные ресурсы для всех своих таблиц и общий объем этих ресурсов не превышает 25 единиц ресурса записи и 25 единиц ресурса чтения, такой объем подпадает под действие уровня бесплатного пользования.

Вопрос. Что такое классы таблиц DynamoDB?

В DynamoDB представлены два класса таблиц, позволяющие оптимизировать затраты. DynamoDB Standard является классом таблиц по умолчанию, который рекомендуется применять для подавляющего большинства рабочих нагрузок. Класс таблиц DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA) оптимизирован для таблиц, хранящих данные, к которым обращаются нечасто, в ситуациях, когда на хранение приходится основная часть затрат. Каждая таблица связана с классом таблиц, а для каждого класса таблиц предусмотрены разные цены на хранение данных, а также запросы на чтение и запись. Можно выбрать наиболее выгодный класс таблиц исходя из требований к хранилищу таблицы и шаблонов доступа к данным.

Вопрос. В каких случаях следует использовать DynamoDB Standard-IA?

Класс DynamoDB Standard-IA помогает снизить общие затраты DynamoDB при наличии таблиц, хранящих редко запрашиваемые данные, например журналы приложений, старые публикации социальных сетей, историю заказов интернет-коммерции и старые игровые достижения. Если на хранение приходится основная часть затрат (стоимость хранения постоянно превышает 50 процентов затрат на пропускную способность для операций чтения и записи), тогда самым экономичным вариантом будет класс таблиц DynamoDB Standard-IA. Подробную информацию о ценах на DynamoDB Standard-IA см. на странице цен на DynamoDB.

Вопрос. Как таблицы DynamoDB Standard-IA работают с имеющимися возможностями DynamoDB и интегрируются с другими сервисами AWS?

Таблицы DynamoDB Standard-IA ничем не отличаются от таблиц DynamoDB Standard – они поддерживают все имеющиеся возможности DynamoDB, включая глобальные таблицы, вторичные индексы, резервное копирование по требованию, восстановление на момент времени (PITR) и Amazon DynamoDB Accelerator (DAX). Как и таблицы DynamoDB Standard, таблицы DynamoDB Standard-IA имеют встроенную интеграцию с другими сервисами AWS. Например, можно следить за производительностью таблиц DynamoDB Standard-IA с помощью Amazon CloudWatch, использовать шаблоны AWS CloudFormation для распределения таблиц DynamoDB Standard-IA и управления ими, осуществлять потоковую передачу записей об изменениях в Amazon Kinesis Data Streams и экспортировать данные таблиц DynamoDB Standard-IA в Amazon Simple Storage Service (Amazon S3).

Как работает сервис

Вопрос: Модели данных и API

Подробнее о моделях данных и API см. в разделе Amazon DynamoDB: How It Works.

Вопрос: Масштабируемость, доступность и надежность

Подробнее о масштабируемости, доступности и надежности см. в разделе Amazon DynamoDB Product Details.

Вопрос: Автомасштабирование

Подробнее о возможности автоматического масштабирования для DynamoDB см. в разделе Managing Throughput Capacity Automatically with DynamoDB Auto Scaling.

Вопрос. Безопасность и контроль доступа

Информацию о безопасности и контроле доступа в рамках сервиса DynamoDB см. в разделе Identity and Access Management в Amazon DynamoDB.

Изображение веб‑страницы
Перейти на страницу цен

См. цены на Amazon DynamoDB.

Подробнее 
Изображение регистрации аккаунта
Зарегистрируйте бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS. 

Регистрация 
Изображение инструментов
Начать разработку в консоли

Начните разработку с помощью Amazon DynamoDB в Консоли управления AWS.

Войти