Разница между SimpleDB и S3

Мне интересно, какова реальная техническая разница между Amazon S3 и Amazon SimpleDB. Из моего небольшого понимания, оба могут использоваться для хранения и извлечения пар ключ/значение. Итак, в каком сценарии мне нужен SimpleDB вместо S3? Как SimpleDB фактически архивируется для повышения производительности (это файловая система, бэкэнд базы данных или другой)?


Дополнительная мысль: Я знаю, что SimpleDB предназначен для хранения пар ключ/значение. Есть ли информация о том, как он генерирует хэш-индекс из ключа для поиска?

Ответ 1

Amazon описывает различия между S3 и SimpleDB на странице SimpleDB. Они хранят объекты S3 в более медленном хранилище и объекты SimpleDB при более быстром хранении, а это значит, что более дорого хранить один и тот же объем данных в SimpleDB, чем в S3.

Если вы просто храните большие двоичные объекты в качестве значений, и вы сами сохраняете метаданные или можете легко получить ключ для желаемого объекта, тогда вы, вероятно, просто используете S3.

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

S3 позволяет хранить метаданные значения ключа вместе с объектом, но чтобы найти объект на основе метаданных, вам нужно будет получить метаданные для каждого объекта в своем ведре самостоятельно, а затем решить, какой элемент ( или предметы), которые вы хотите получить. Это может быть медленным и дорогостоящим для больших ведер. Кроме того, существует ограничение на количество метаданных, которые вы можете хранить и извлекать, если вы используете API REST.

SimpleDB более гибкий с сохраненными метаданными. Пара ключей-значений индексируется, поэтому запрос может быть быстрым. Вы можете добавлять и изменять пары ключ-значение, которые уже находятся в SimpleDB, где вам нужно удалить и воссоздать объекты в S3 для обновления метаданных. Тем не менее, существует ограничение на 1024 байта размера ключа и значений и общий предел количества данных в домене (аналог ковша). Все ограничения SimpleDB перечислены в Руководство разработчика SDB.

Если вы храните большие объекты с большим количеством метаданных с ключом, вы, вероятно, будете использовать гибридный подход. На странице обзора Amazon предлагается хранить метаданные в SimpleDB, причем одна из пар ключ-значение является указателем на S3 для данных объекта.