Я только что закончил писать библиотеку, чтобы упростить перенос приложения на simpledb на Perl, Net :: Amazon :: SimpleDB :: Simple, потому что я нашел, что клиентские библиотеки Amazon болезненны. Библиотека еще не работает на CPAN, но находится на http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm Идея состояла в том, чтобы сделать ее простой в добавлении хэшей в SimpleDB и обратно.
Я просто портировал приложение, чтобы использовать его. В целом я впечатлен SimpleDB ... даже неэффективные запросы возвращаются за 2-3 секунды. SimpleDB, кажется, не заботится о размере вашей таблицы из-за его Erlang / параллельного характера. Для него легко сканировать таблицы.
Боль возникает из-за того, что вы не можете считать, суммировать или группировать по. Если вы планируете делать что-то из этого ... тогда SimpleDB, вероятно, не для вас. На данный момент с точки зрения функциональности он существует где-то между memcached и MySQL. Вы можете выбрать ORDER BY LIMIT, что приятно. Также приятно, что вам не нужно масштабировать его самостоятельно, и приятно, что вам все равно, сколько вы в него вложите. Но более сложные операции, такие как аналитика, в лучшем случае болезненны. Вам придется делать свои собственные вычисления на стороне сервера. Это также большой плюс, что на любом компьютере я могу использовать простой интерфейс CLI http://code.google.com/p/amazon-simpledb-cli/ для запроса моих данных.
Есть некоторые запутанные «ошибки». Например, атрибуты могут иметь более одного значения, и вы должны явно установить «заменить» при хранении элементов. Кроме того, сохранение неопределенной или нулевой строки приводит к ошибке библиотеки вместо удаления этой пары имя / значение атрибута или установки ее пустой или пустой строки.
Обучение мыслить в терминах в значительной степени ненормализованного способа также немного странно, поэтому я бы поддержал приведенное выше предложение, в котором говорится, что оно лучше для новых приложений. Перенос из приложения SQL в SimpleDB был бы болезненным, потому что логика вашего приложения должна была бы измениться. То, как вы делаете вещи, немного по-другому. Амазонские документы довольно хорошо объясняют это.
Все это можно извлечь из библиотеки, расположенной поверх SimpleDB, поэтому для использования SimpleDB вы захотите выбрать хорошую библиотеку ... вы, вероятно, не хотите иметь с ней дело напрямую. На стороне PHP есть некоторая работа, чтобы упростить задачу, и есть моя библиотека. Существует активный источник RAILS, но, похоже, он мало для вас работает.
В целом, он все еще находится на ранней стадии разработки, но по сравнению с другими API (приходит в голову твиттер), я должен сказать, что SimpleDB REST API довольно прост (особенно учитывая, что это XML) и вежлив с , Я бы порекомендовал это ... в зависимости от требований вашего приложения и экономической эффективности его использования. Если вы хотите быстро масштабировать сервис, который не сильно загружает БД, и не хотите беспокоиться о масштабируемой комбинации MySQL / memcache ... тогда SimpleDB может предложить вам «простое» решение.
Я ожидаю, что его возможности будут продолжать расти, и он станет хорошим выбором для все большего числа приложений, которые делают более сложные и интересные вещи. Но сейчас он нацелен на типичную службу Web 2.0 и соответствует ей.