Обратите внимание, что новости можно получать по RSS.
X
-

Информационные технологии, LiveJournal cr_it - архив

31 октября 2008, 05:19 (5866 дней назад, №8741)Amazon SimpleDB

Продолжаем экскурсию по хранилищам данных. Сегодня на повестке дня Amazon SimpleDB.

Amazon SimpleDB is a web service for running queries on structured data in real time. This service works in close conjunction with Amazon Simple Storage Service (Amazon S3) and Amazon Elastic Compute Cloud (Amazon EC2), collectively providing the ability to store, process and query data sets in the cloud (отсюда

Simple DB кое в чём похожа на Google Base, о котором я писал в предыдущем посте. Однако нацелена она скорее на задачи для которых сейчас используется MySQL и т.п. Это выражается как в скорости, так и в некоторых других вещах. В принципе, её правильнее было бы сравнивать не с Google Base, а с Google Datastore (о котором речь ещё пойдёт).

Пока сравниваем всё же с Google Base, просто ввиду последовательности изучения.
Как и в Google Base, понятия изначально заданной структуры и таблиц - не существует. Любая запись (item) может иметь любые поля (атрибуты). Записи (items) находятся в domains "доменах" - по смыслу что-то среднее между понятиями "база" и "таблица" в MySQL.

- Любой конкретный запрос распространяется только на содержимое домена. Два разных домена в запросе участвовать не могут (объединять не получится)!

- Еще одно важное отличие - атрибут записи может иметь несколько значений. Т.е., в отличие от традиционного подхода, в color можно записать сразу blue и red :) В каком-то смысле это компенсирует отсутствие join'ов. Удобно, например, для хранение тэгов какого-нибудь документа, вроде того что вы читаете.

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

- Все данные индексируются автоматически

- Сортировки только по одному полю и сочетаются не со всеми условиями выборки

- Типов данных нет.  Всё, включая числа, хранится в виде строк UTF-8. К примеру, сравнение отрицательных чисел с чем-либо, будет некорректным, без специальных мер (сложение с константой, дополнение ведущими нулями и т.д.).

- Следствие распределенного хранения данных:  после записи данных сразу возвращается success, но при выборке оттуда в течении секунд по-прежнему могут возвращаться старые данные, пока везде всё не обновиться.

- Довольно жёсткие ограничения. Среди прочего, максимальное число возвращаемых по запросу items - всего лишь 250. Максимальное время выполнения запроса - 5 секунд.
http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide/SDBLimits.html

- С crossdomain.xml для Flex/Flash творится тоже, что и на других сервисах. Т.е. нет его:
"We appreciate the need of our developers to access Amazon SimpleDB from their Flash applications.  However, for security reasons, we will not be able to post a cross domain policy file for Amazon SimpleDB."
Проблема, вообще говоря, сложнее, чем кажется

- Запросы к сервису можно отсылать через REST, либо через SOAP (авторизация аналогична Amazon S3).

Пример запроса и ответа через REST:

Запрос (создаёт домен, помещает в него запись с тремя полями)

https://sdb.amazonaws.com/?Action=PutAttributes
&DomainName=MyDomain
&ItemName=Item123
&Attribute.1.Name=Color&Attribute.1.Value=Blue
&Attribute.2.Name=Size&Attribute.2.Value=Med
&Attribute.3.Name=Price&Attribute.3.Value=0014.99
&AWSAccessKeyId=<valid_access_key>
&Version=2007-11-07
&Signature=Dqlp3Sd6ljTUA9Uf6SGtEExwUQE=
&SignatureVersion=1
&Timestamp=2007-06-25T15%3A01%3A28-07%3A00


Ответ:

<PutAttributesResponse xmlns="http://sdb.amazonaws.com/doc/2007-11-07">
  <ResponseMetadata>
    <StatusCode>Success</StatusCode>
    <RequestId>f6820318-9658-4a9d-89f8-b067c90904fc</RequestId>
    <BoxUsage>0.0000219907</BoxUsage>
  </ResponseMetadata>
</PutAttributesResponse>

(BoxUsage - данные о затраченных на выполнение запроса вычислительных ресурсах).

Запрос через SOAP аналогичен, просто в виде XML. Ответ почти такой же, только обёрнут еще в пару тэгов.

- На данный момент Amazon SimpleDB имеет статус Beta и его использование требует специального запроса к Амазонам и неопределенного ожидания (на форуме кто-то жаловался что ждёт 11 месяцев, другому доступ открыли через две недели).

Ссылки:

http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1365 - SimpleDB for AS3 (AIR!)
http://giantflyingsaucer.com/blog/?p=167 - Tutorial (про вышеупомянутую библиотеку)
http://www.simpledbdev.com/simpledbdev/ - "эмулятор" SimpleDB для установки на свою машину (на Python).


 


Опубликовано: Пётр Соболев

Случайная заметка

8279 дней назад, 12:5824 марта 2002 Разобрал свой Nikon Coolpix 950 (пыль попала на защитное стекло с внутренней стороны и переключатель PLAY-A-M-OFF стал плохо работать). Расскажу о впечатлении - может кому пригодится :) Разбирается довольно легко - вывинчиваются винты и половинки корпуса снимаются. Советую запомнить откуда что - некоторые винты имеют разную длину. Далее на ...далее

Избранное

2758 дней назад, 01:575 мая 2017 Часть 1: От четырёх до восьми Я люблю читать воспоминания людей, заставших первые шаги вычислительной техники в их стране. В них всегда есть какая-то романтика, причём какого она рода — сильно зависит от того, с каких компьютеров люди начали. Обычно это определяется обстоятельствами — местом работы, учёбы, а иногда и вовсе — ...далее

2270 дней назад, 20:305 сентября 2018 "Finally, we come to the instruction we've all been waiting for – SEX!" / из статьи про микропроцессор CDP1802 / В начале 1970-х в США были весьма популярны простые электронные игры типа Pong (в СССР их аналоги появились в продаже через 5-10 лет). Как правило, такие игры не имели микропроцессора и памяти в современном понимании этих слов, а строились на жёсткой ...далее