Amazon SimpleDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:00, 30 января 2019.
Amazon SimpleDB
Amazon.jpeg
Создатели: Amazon
Разработчики: AWS (Amazon Web Services)
Выпущена: 30 Апреля 2015 года
Постоянный выпуск: 3.3.0.70 / 1 Декабря 2019 года
Предыдущий выпуск: 3.0.0-preview / 30 Апреля 2015 года
Состояние разработки: Активное
Операционная система: Linux, OS X, Windows,
Локализация: Английский
Лицензия: Shareware
Веб-сайт aws.amazon.com/simpledb/

Amazon SimpleDB — сервис, предоставляющий ядро функций базы данных, а именно индексирование данных и выполнение запросов. Данный сервис тесно взаимодействует с сервисами Amazon S3 и Amazon EC2, в совокупности они предоставляют возможности для хранения, обработки запросов и данных в облаке, в результате повышается производительность. Входит в инфраструктуру сервисов AWS (Amazon Web Services).

Введение

Amazon SimpleDB – это высокодоступное и гибкое нереляционное хранилище данных, которое обеспечивает всю работу по администрированию баз данных. Разработчик с помощью запросов веб-сервисов сохраняет элементы данных и обращается к ним, а Amazon SimpleDB делает все остальное.

В отличие от реляционных, базы данных Amazon SimpleDB не ограничены строгими требованиями и обеспечивают высокую доступность и гибкость, при этом совсем не требуют администрирования либо требуют его в незначительном объеме. Незаметно для пользователя Amazon SimpleDB автоматически создает множество реплик данных в разных географических местоположениях и управляет ими, обеспечивая высокую доступность и предотвращая потерю данных. Плата взимается только за ресурсы, фактически используемые при хранении данных и обслуживания запросов. Модель данных можно менять «на лету», а индексация данных выполняется автоматически. Благодаря Amazon SimpleDB вы сможете сконцентрироваться на разработке приложений, не беспокоясь о выделении инфраструктуры, высокой доступности, обслуживании ПО, управлении схемой БД и индексацией, а также настройкой производительности[Источник 1].

Функциональность SimpleDB

С помощью SimpleDB можно:[1]

  • Создать новый домен для размещения вашего уникального набора структурированных данных.
  • Выполнить операции GET, PUT и DELETE над элементами в вашем домене, с помощью пар атрибут-значение, которые связаны с каждым элементом. Сервис автоматически индексирует данные, которые добавляются в домен, чтобы их можно было быстро получить, нет необходимости заранее определять схемы или изменить их, если новые данные добавлены позже. Каждый элемент может иметь до 256 значений атрибутов. Каждый атрибут может варьироваться от 1 до 1024 байт.
  • Позволяет выполнять запросы с помощью SELECT API или QUERY API и с помощью набора операторов: =, !=, <, >, <=, >=, STARTS-WITH, AND, OR, NOT, INTERSECTION и UNION. Также есть возможность сортировки результатов с помощью оператора SORT. SimpleDB предназначен для использования приложений в реальном времени и оптимизировано для этого.
  • Платить только за ресурсы, которые вы потребляете.

Преимущества

Минимум обслуживания

Сервис позволит вам отдать все силы разработке бизнес-приложений, не отвлекаясь на трудоемкий процесс администрирования баз данных. Amazon SimpleDB автоматически выполнит выделение инфраструктуры, обслуживание аппаратного и программного обеспечения, репликацию и индексирование элементов данных и настройку производительности.

Высокая доступность

Amazon SimpleDB автоматически создает множество копий каждого элемента сохраненных вами данных в разных географических местоположениях, что обеспечивает высокую доступность и надежность: даже в случае потери одной из реплик Amazon SimpleDB переключится на другую реплику в системе.

Гибкость

По мере роста бизнеса или развития приложений вы с легкостью отобразите эти изменения в базе данных Amazon SimpleDB, не беспокоясь ни о том, что можете нарушить жестко заданную схему, ни о необходимости изменения программного кода. Достаточно будет добавить еще один атрибут к набору данных Amazon SimpleDB Вы также можете использовать запросы непротиворечивого или потенциально непротиворечивого чтения, гибко подстраивая параметры производительности чтения (время задержки и пропускную способность) и его непротиворечивости к требованиям вашего приложения или даже к требованиям разных элементов приложения.

Простота использования

Amazon SimpleDB предоставляет удобный доступ к функциям хранения и выдачи запросов, традиционно обеспечиваемый использованием кластера реляционных баз данных, не отягощенный выполнением сложных, редко используемых операций с БД. Сервис позволяет быстро добавлять данные и легко извлекать или редактировать их с помощью простых вызовов API. Взаимодействие с другими сервисами Amazon Web Services Amazon SimpleDB легко интегрируется с другими сервисами AWS[2], такими как Amazon S3 и Amazon EC2, и предоставляет инфраструктуру для создания масштабных Интернет-приложений. Например, разработчики могут запускать приложения на инстансах Amazon EC2 и хранить их объекты данных в хранилище Amazon S3. Amazon SimpleDB при этом можно использовать для запросов метаданных объектов из приложения в Amazon EC2, возвращающих указатели на объекты, хранимые в Amazon S3. Можно также использовать Amazon SimpleDB совместно с БД Amazon RDS Amazon RDS для разработки приложений, работа которых требует использования как реляционных, так и нереляционных баз данных. Передача данных между Amazon SimpleDB и другими сервисами AWS бесплатна в пределах одного региона.

Безопасность

Amazon SimpleDB предоставляет конечную точку https, чтобы обеспечить безопасное, зашифрованное соединение между вашим приложением или клиентом и вашим доменом. Кроме того, благодаря интеграции с сервисом AWS Identity and Access Management, можно настроить контроль доступа к определенным доменам и операциям SimpleDB на уровне пользователей или групп. Низкая цена Используя Amazon SimpleDB, вы пользуетесь финансовыми преимуществами, связанными с эксплуатацией масштабной вычислительной инфраструктуры Amazon. Вы платите только за фактически используемые ресурсы. В случае с Amazon SimpleDB это означает, что при выдаче запросов чтения и записи к хранилищу данных плата взимается за вычислительные ресурсы, использованные для выполнения каждой операции, и не взимается, если вы не пользовались ресурсами (то есть не делали запросов).[3]

Типичные примеры использования

Ведение логов

Поскольку сервис Amazon SimpleDB берет на себя всю работу по администрированию производственной базы данных, многие разработчики считают его идеальным, требующим минимум обслуживания хранилищем данных логов о состояниях или событиях, обновлениях статуса, повторяющихся действиях, рабочих процессах и состоянии устройств или приложений. Amazon SimpleDB позволяет «разместить и забыть» данные логов, не потратив при этом больших денег, и затем пользоваться ими в различных целях, таких как:

  • мониторинг или отслеживание;
  • выполнение измерений;
  • анализ бизнес-трендов;
  • аудит;
  • проверка соответствия текущим или архивным требованиям.

Примеры использования: централизованное хранение серверных логов с целью освобождения дискового пространства на каждом из работающих серверов; регистрация рабочих метрик или результатов текущего тестирования производительности для последующего анализа; аудит записей доступа или изменений настроек приложений или сетевых устройств; захват и мониторинг данных об условиях окружающей среды (температура, давление, влажность и т. д.) в разных местах и программирование выдачи предупреждений о тех или иных условиях; регистрация и отслеживание геолокационных данных об объектах или статуса процессов для действий рабочего потока. Благодаря наличию множества атрибутов, Amazon SimpleDB является удобным хранилищем данных логов.

Централизованное и высокодоступное: если ранее данные логов локально размещались по разнообразным устройствам/объектам, приложениям или хранилищам процессов, теперь вы можете воспользоваться преимуществами пользования единым централизованным хранилищем данных в облаке. Более того, Amazon SimpleDB автоматически и с обеспечением географической избыточности реплицирует ваши данные для их высокой доступности. Это означает, что (в отличие от локальных централизованных решений) с Amazon SimpleDB вы создаете множество точек, откуда в любой момент сможете извлечь свои данные. Все данные можно сохранять с помощью одного решения, используя запросы веб-сервисов, и затем обращаться к ним с любых устройств. Никакого администрирования: вы сохраняете элементы данных с помощью простых запросов веб-сервисов, а Amazon Web Services заботится об остальном. Сервис спроектирован таким образом, чтобы разработчик мог сохранять и обслуживать логи, не тратя времени на управление самой базой данных.

Экономное: хранение логов данных в Amazon SimpleDB и выдача запросов к ним стоит совсем недорого. Вы платите только за те ресурсы, которыми пользуетесь, поэтому вам не приходится планировать их выделение или беспокоиться о размере нагрузки на базу данных. Сервис предоставляет ресурсы в соответствии с объемом запросов по мере их поступления и обслуживания, взимая плату только за фактически использованные ресурсы.

Интернет-игры

Разработчикам Интернет-игр для любых платформ Amazon SimpleDB предлагает высокодоступное, масштабируемое решение баз данных для хранения пользовательских и игровых данных, не требующее администрирования.

Amazon SimpleDB может хранить и индексировать, в частности, следующие данные Интернет-игр с обслуживанием запросов к ним:

  • очки и достижения игроков;
  • пользовательские настройки или предпочтения;
  • информацию об айтемах игроков или пользовательский контент;
  • состояние игровой сессии (при сохранении или прерывании игры);
  • динамический игровой контент (сервис-ориентированная архитектура для игры, хранение и обслуживание новых заданий или контента для игроков с помощью Amazon SimpleDB);
  • индексирование метаданных больших объектов, используемых игрой и хранящихся в Amazon S3.

Amazon SimpleDB обладает множеством свойств, делающих этот сервис отличным решением для хранения данных Интернет-игр.

Высокая доступность (автоматическая репликация с обеспечением географической избыточности для аварийного переключения): Amazon SimpleDB обеспечивает высокую доступность, автоматически создавая множество копий ваших данных и выполняя переброс на доступную копию, если какая-то из копий окажется недоступна. Таким образом, пользователи вашей игры получают надежный, бесперебойный доступ к основным данным, а вам, чтобы предоставить его, не нужно заниматься сложной настройкой кластеров БД.

Автоматическое масштабирование: по мере роста пользовательской базы и колебаний активности игроков: Amazon SimpleDB реагирует на объем трафика и запросов без вмешательства разработчика. Вы платите только за фактически используемые ресурсы. Никакого администрирования: вместо того чтобы тратить усилия на управление базой данный, поручите сервису всю работу по выделению инфраструктуры, установке ПО, созданию и обслуживанию схемы БД, построению индексов и настройке производительности запросов. Не нужно заниматься администрированием. Посвятите себя созданию захватывающих игр и новых функций для ваших пользователей.

Индексация метаданных объектов Amazon S3

Многие разработчики используют Amazon SimpleDB совместно с Amazon Simple Storage Service (Amazon S3). В Amazon SimpleDB можно хранить указатели на местонахождение объектов в Amazon S3 и подробную информацию об этих объектах (метаданные), дополняя возможности сервиса Amazon S3 богатой функциональностью по работе с запросами БД. Разработчикам, хранящим большое число объектов в Amazon S3, сервис Amazon SimpleDB предлагает гибкое, масштабируемое и недорогое решение для хранения метаданных объектов, а на себя берет всю работу по администрированию базы данных.

Amazon SimpleDB может хранить и индексировать, в частности, следующие метаданные объектов с обслуживанием запросов к ним:

  • тип или формат данных (изображение, видео, документ);
  • пользовательские связи или параметры доступа;
  • даты создания, просмотра или изменения объекта;
  • имя или местонахождение связанных объектов;
  • пользовательские оценки и комментарии;
  • теги тем или категорий;
  • геолокационные теги.

Эти и другие метаданные важны для задач доставки контента, приложений мультимедиа, резервного копирования, архивирования и многих других. Amazon SimpleDB является идеальным хранилищем для метаданных из-за предоставления следующих функций.

Гибкое проектирование без создания схемы: простое добавление дополнительных атрибутов метаданных без риска нарушения жестко заданной схемы. Можно начать отслеживать пользовательские оценки видеообъектов, не внося в структуру базы никаких сложных изменений.

Атрибуты с множеством значений: у атрибута метаданных может быть множество значений. Это означает, что фото может быть связано с множеством пользователей, а музыкальный файл может принадлежать к множеству жанров. Никакого администрирования: Amazon SimpleDB не только берет на себя всю работу по выделению инфраструктуры и установке и обслуживанию ПО, требуемых для функционирования БД, но и выполняет автоматическую индексацию данных, настройку производительности запросов и создает копии данных с географической избыточностью.

Также Amazon SimpleDB с легкостью выполняет масштабирование, реагируя на изменение объема запросов и взимая умеренную плату только за фактически используемые ресурсы.

Краткое описание API

Amazon SimpleDB предоставляет ряд простых вызовов API для записи, индексирования и формирования запросов к данным. Интерфейс и набор функций делают акцент на выполнение основных операций, чтобы обеспечить разработчикам базовые инструменты API для начала работы, а также возможность легкого обучения и использования[Источник 2]. Ниже представлены некоторые из команд API SimpleDB:

  • CreateDomain – создание домена, содержащего набор данных;
  • DeleteDomain – удаление домена;
  • ListDomains – вывод списка всех доменов;
  • DomainMetadata – извлечение информации о времени создания домена, а также информации о его содержимом: числе содержащихся имен и атрибутов и общем объеме в байтах;
  • PutAttributes – добавление или обновление элемента и его атрибутов или добавление пары «атрибут-значение» для существующего элемента. Элементы автоматически индексируются по мере добавления в базу;
  • BatchPutAttributes – выполнение до 25 операций PutAttribute одним вызовом для более производительной записи данных;
  • DeleteAttributes – удаление элемента, атрибута или значения атрибута;
  • BatchDeleteAttributes – выполнение до 25 операций DeleteAttributes одним вызовом для более производительного удаления данных;
  • GetAttributes – извлечение элемента и всех его атрибутов и значений или их подмножества;
  • Select – запрос набора данных с помощью известного синтаксиса select target from domain_name where query_expression, который поддерживает такие операторы сравнения значений:=, !=, =, like, not like, between, is null, is not null и every().

Пример запроса:

select * from mydomain where every(keyword) = ‘Book’ 

Результаты можно упорядочить с помощью оператора SORT и подсчитать число элементов, удовлетворяющих условию (условиям), заданному предикатом (предикатами), с помощью запроса с оператором Count[4].

Виды непротиворечивости

Для обеспечения высокой доступности и сохранности данных Amazon SimpleDB сохраняет множество копий каждого домена в различных географических местоположениях. Запись (с помощью запросов PutAttributes, BatchPutAttributes, DeleteAttributes, BatchDeleteAttributes, CreateDomain илиDeleteDomain) считается успешно выполненной, если все копии домена надежно сохранены. Amazon SimpleDB поддерживает два вида непротиворечивости чтения: потенциально непротиворечивое и непротиворечивое.

  • Потенциально непротиворечивое чтение (по умолчанию): этот вид непротиворечивости обеспечивает максимальную производительность чтения данных, определяемую малым временем задержки и высокой пропускной способностью. Однако потенциально непротиворечивое чтение (с помощью запросов Select или GetAttributes) может не отображать результатов недавно выполненной записи (с помощью запросов PutAttributes, BatchPutAttributes, DeleteAttributes, BatchDeleteAttributes). Как правило, все копии данных становятся непротиворечивыми в течение одной секунды, и повторная операция чтения через небольшой промежуток времени возвратит обновленные данные[4];
  • Непротиворечивое чтение: кроме потенциальной непротиворечивости, Amazon SimpleDB также предоставляет гибкую и управляемую функцию выдачи запросов непротиворечивого чтения, если таковое требуется для вашего приложения или его элемента. Операция непротиворечивого чтения (с помощью запросов Select или GetAttributes с параметром ConsistentRead=true) возвращает значение, отображающее результат всех успешных операций записи, предшествовавших чтению.

По умолчанию запросы GetAttributes и Select осуществляют потенциально непротиворечивое чтение. В связи с тем, что выполнение непротиворечивого чтения может увеличить время задержки и снизить скорость чтения, желательно применять его только в тех случаях, когда сценарий приложения строго требует, чтобы при чтении был возвращен результат всех успешных операций записи, предшествовавших чтению. Для всех прочих сценариев заданное по умолчанию потенциально непротиворечивое чтение обеспечит наилучшую производительность. Обратите внимание, что Amazon SimpleDB позволяет задавать вид непротиворечивости для каждого отдельного запроса чтения. Таким образом, для различных элементов одного и того же приложения можно устанавливать различные настройки непротиворечивости.[4]

Транзакции

Amazon SimpleDB – нереляционная база данных, в связи с чем некоторые сложные транзакции и отношения (например, соединение) в ней отсутствуют, зато доступны уникальные функции и характеристики производительности. Однако Amazon SimpleDB все же обеспечивает такую семантику транзакций, как:

  • Условные запросы Put/Delete. С их помощью выполняется вставка, замена и удаление значений одного или более атрибутов элемента, если текущее значение атрибута соответствует заданному, если же не соответствует или отсутствует, то обновление выполнено не будет. Условные запросы Put/Delete используют, чтобы предотвратить потерю обновлений при внесении изменений в один и тот же элемент несколькими источниками одновременно.

Условные запросы Put и Delete выдают с помощью операций API PutAttributes и DeleteAttributes, задавая при этом выбираемое условие с предполагаемым значением. Например, если речь о приложении для резервирования мест или продажи билетов, можно разрешить продажу (т. е. запись обновления) только в том случае, если данное место свободно (дополнительное условие). С помощью этой семантики можно также создавать счетчики, выполнять вставку элемента при условии, что он еще не существует, и осуществлять оптимистический конкурентный контроль (OКК). Приложение может осуществлять ОКК с помощью такого атрибута элемента, как номер версии (или метка даты/времени), выдавая условный запрос Put/Delete со значением, равным номеру версии. Подробнее о семантике транзакций и непротиворечивости сервиса Amazon SimpleDB см. руководство для разработчиков Amazon SimpleDB или техническую документацию по вопросам непротиворечивости.[4]

Выбор решения AWS для базы данных

Amazon Web Services предлагает разработчикам целый ряд сервисов баз данных. Вы можете воспользоваться полностью управляемым сервисом реляционных баз данных или сервисом БД NoSQL, а можете самостоятельно управлять базой данных с использованием облачной инфраструктуры Amazon EC2 и Amazon EBS.

Сервис Amazon RDS позволяет создать реляционную базу данных с полным набором функций и берет на себя всю работу по администрированию БД. Amazon DynamoDB – это полностью управляемый сервис баз данных NoSQL, обеспечивающий прогнозируемую высокую производительность и прозрачную масштабируемость. Amazon SimpleDB – сервис нереляционных баз данных, предназначенный для небольших наборов данных. Используя один из множества AMI в Amazon EC2 и Amazon EBS, вы сможете полностью контролировать вашу базу данных без необходимости выделять и устанавливать аппаратные ресурсы.[4]

Каждый из сервисов отличается рядом важных особенностей и предназначен для решения своего круга задач. На странице использование баз данных в AWS вы найдете подробные сведения о том, какой сервис баз данных лучше подойдет для вашего приложения.[4]

Сравнение хранилищ данных Amazon SimpleDB и Amazon S3

В отличие от Amazon S3, Amazon SimpleDB не сохраняет первичные данные, а принимает данные как входные и создает на их основе множество индексов, обеспечивая быстрое выполнение запросов к данным. Кроме того, в сервисах Amazon S3 и Amazon SimpleDB используются разные типы физических хранилищ. Amazon S3 использует хранилища высокой плотности, оптимизированные для недорогого хранения больших объектов. Amazon SimpleDB хранит меньшие порции данных и использует хранилища более низкой плотности, оптимизированные для быстрого доступа к данным.[4]

В целях сокращения затрат на пользование сервисами AWS большие объекты или файлы лучше хранить в Amazon S3, а меньшие элементы данных или указатели файлов (в т. ч. на объекты в Amazon S3) – в Amazon SimpleDB. Интегрировав оба сервиса в одно приложение, благодаря отличной совместимости сервисов и отсутствию платы за передачу данных в пределах среды AWS, разработчик может воспользоваться такими преимуществами Amazon SimpleDB, как скорость передачи данных, возможности работы с запросами и недорогое хранение данных в Amazon S3.[4]

В настоящее время в Amazon SimpleDB поддерживает домены объемом до 10 ГБ. Если размер набора данных превышает 10 ГБ, воспользуйтесь возможностью горизонтального масштабирования архитектуры Amazon SimpleDB и распределите данные по множеству доменов. Поскольку в Amazon SimpleDB предусмотрена параллельная обработка данных, распределение данных по большему числу доменов также повысит пропускную способность при выполнении операций записи и чтения. Первоначально пользователю Amazon SimpleDB предоставляется не более 250 доменов. Если вам понадобятся дополнительные домены, пожалуйста, заполните эту форму.

Оценка затрат на использование SimpleDB

Работу с Amazon SimpleDB можно начать бесплатно. Как новым, так и существующим пользователям бесплатно предоставляется 25 часов машинного времени SimpleDB и 1 ГБ хранилища ежемесячно. В рамках уровня бесплатного пользования могут постоянно работать многие приложеня[Источник 3]

  • Вычисления. Amazon SimpleDB измеряет использование процессора для каждого запроса и начисляет плату, исходя из количества ресурсов, использованных для выполнения отдельного запроса, нормированных по часовому использованию процессора 1.7 GHz Xeon 2007 года.
  • Передача данных. За передачу данных между Amazon SimpleDB и другими веб-сервисами AWS в пределах одного и того же региона дополнительная плата не взимается (т. е. плата составляет 0,00 USD за 1 ГБ). Данные, передаваемые между регионами, – например, между Amazon SimpleDB в регионе ЕС (Ирландия) и Amazon EC2 в регионе Восток США (Северная Вирджиния) – оплачиваются по тарифу передачи данных в Интернете на обеих сторонах.
  • Хранение данных. Amazon SimpleDB измеряет объем данных, за которые начисляется плата, суммируя объемы загруженных вами первичных данных и прибавляя 45 байт для каждого элемента, имени атрибута и пары атрибут-значение.

Также Amazon SimpleDB предоставляет свой калькулятор расчета расходов[5] .

Примечание

  1. Подробно о возможностях SimpleDB http://aws.amazon.com/simpledb/#functionality
  2. Сервис Amazon SimpleDB интегрируется с сервисом AWS Identity and Access Management для тонкой настройки контроля ресурсов Amazon SimpleDB. Благодаря интеграции с AWS Identity and Access Management из аккаунта AWS, использующего сервис SimpleDB, можно создавать множество пользователей, которым, в свою очередь, можно предоставлять разрешения доступа к доменам SimpleDB данного аккаута AWS на уровне API SimpleDB. Дополнительную информацию см. на странице AWS Identity and Access Management.
  3. Подробно о безопасности SimpleDB https://aws.amazon.com/ru/simpledb/faqs/
  4. 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 Подробно об этом можно найти здесь https://aws.amazon.com/ru/simpledb/details/
  5. Калькулятор расчета расходов. Приведенные цены зависят от региона, в котором создан домен (домены) Amazon SimpleDB http://calculator.s3.amazonaws.com

Источники

  1. Amazon SimpleDB // Amazon [1994-2019]. Дата обновления: 16.12.2018. URL: https://aws.amazon.com/ru/simpledb/ (дата обращения: 16.01.2019).
  2. SimpleDB DeveloperGuide // Amazon [2015-2019]. Дата обновления: 16.12.2018. URL: https://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/sdb-dg.pdf (дата обращения: 16.01.2019).
  3. SimpleDB pricing // Amazon [2015-2019]. Дата обновления: 16.12.2018. URL: https://aws.amazon.com/ru/simpledb/pricing/ (дата обращения: 16.01.2019).