Что необходимо учитывать при выборе между MySQL и Amazon SimpleDB для приложения RoR? - PullRequest
9 голосов
/ 02 октября 2008

Я только начинаю исследовать возможность использования сервиса Amazon SimpleDB в качестве хранилища данных для приложения RoR, которое я планирую создать. Мы будем использовать EC2 для веб-сервера и планировали также использовать EC2 для серверов MySQL. Но теперь вопрос, почему бы не использовать SimpleDB?

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

Мне любопытно, что думают сообщества SO по этому поводу.

Ответы [ 5 ]

4 голосов
/ 02 октября 2008

Библиотека Ruby SimpleDB не такая полная, как ActiveRecord (адаптер по умолчанию для Rails DB), поэтому многие функции, к которым вы привыкли, не появятся.

С другой стороны, он не имеет схемы, масштабируется и хорошо работает с ec2.

Если вы собираетесь делать такие вещи, как полнотекстовый поиск в своем приложении, тогда SimpleDB может оказаться не лучшим выбором, придерживайтесь AR + sphinx.

4 голосов
/ 02 октября 2008

Ну, учитывая, что простая БД не использует SQL или даже не имеет таблиц, это означает, что это совершенно другой зверь, чем MySQL и другие вещи на основе SQL (http://aws.amazon.com/simpledb/). Нет никаких ограничений, триггеров или объединений . Удачи.

Вот один из способов его запуска и запуска: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1242 (через http://rubyforge.org/projects/aws-sdb/)

Полагаю, если вам никогда не понадобится запрашивать данные за пределами рельсов, тогда SimpleDB может оказаться в порядке. Но поскольку это не первоклассная поддерживаемая БД, вы, вероятно, столкнетесь с ошибками, которые трудно исправить. Я бы не хотел запускать приложение для рабочих рельсов в бета-версии с полубета.

2 голосов
/ 20 мая 2009

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

«Приложение (в случае успеха) должно быть очень масштабируемым с точки зрения количества поддерживаемых пользователей», серьезно, что описывает половину Интернета. Это «если успешно» часть, которая действительно вопрос. Просто сконцентрируйтесь на создании приложения быстро и легко. Самый простой способ сделать это - просто использовать ROR, так сказать, из коробки. Соедините его с базой данных, используйте ActiveRecord и создайте что-нибудь интересное для пользователей.

На самом деле, я пойду дальше и скажу, что EC2 довольно дорог для того, чтобы всегда работать на серверах. Разверните его на Slicehost или другом размещенном решении, а затем перенесите его в EC2, если это необходимо для поддержки спроса.

1 голос
/ 02 октября 2008

Мне самому очень интересна эта тема. Прямо сейчас я нахожусь на высоком уровне облачных вычислений, поэтому я бы сказал, пойти с SimpleDB, поскольку он, вероятно, будет лучше масштабироваться в том смысле, что у вас будет высокая доступность, но это только мои мысли на данный момент. Еще не из опыта.

Edit: Это правда, что SimpleDB не имеет нормальных функций "нормальной" базы данных, но он должен делать свое дело, если вам нужен только простой слой CRUD для работы, как в моем случае

0 голосов
/ 20 мая 2009

Есть библиотека с именем SimpleRecord , которая является заменой ActiveRecord, но использует SimpleDB в качестве внутреннего хранилища данных.

...