Что такое DynamoDB?

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

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

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

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

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

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

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

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

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

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

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

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

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

После создания таблицы с помощью консоли DynamoDB или API CreateTable для вставки элементов можно использовать API PutItem или BatchWriteItem. Для извлечения элементов, добавленных в таблицу, можно использовать такие API, как GetItem, BatchGetItem или 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 см. на странице цен на Amazon DynamoDB.

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

DynamoDB поддерживает масштабирование без ограничений. Однако если требуется пропускная способность более 10 000 единиц ресурса записи или чтения для одной таблицы, необходимо предварительно связаться с Amazon. Если требуется выделить более 20 000 единиц ресурса записи или 20 000 единиц ресурса чтения для одного аккаунта, сначала свяжитесь с нами и отправьте запрос на увеличение лимита.

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

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

Как это работает

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

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

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

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

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

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

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

Подробнее о безопасности и контроле доступа в рамках сервиса DynamoDB см. в разделе Authentication and Access Control for Amazon DynamoDB.

Подробнее о ценах на Amazon DynamoDB

Перейти на страницу цен
Готовы приступить?
Начать работу с DynamoDB
Есть вопросы?
Свяжитесь с нами