Какой смысл того, чтобы использовать Amazon SimpleDB?

Если я правильно понимаю, вы можете использовать union all и group by:

select user, sum(num)
from ((select user, num
       from q1
      ) union all
      (select user, num
       from q2
      )
     ) q
group by user;
51
задан Steffen Opel 29 April 2012 в 14:32
поделиться

6 ответов

Я использую SDB для пары крупных приложений. Ограничение в 10 ГБ на домен меня действительно беспокоит, но мы играем на Amazon, позволяя расширить его, если нам это нужно. У них есть форма запроса на их сайте, если вам нужно больше места.

Что касается междоменных соединений, не думайте, что SDB - это традиционная база данных. Во время миграции моих данных в SDB, Мне пришлось денормализовать некоторые из них, чтобы я мог вручную выполнять междоменные соединения.

Ограничение в 1000 байт на атрибут также было сложно обойти. Одно из приложений, которое у меня есть, - это сервис блогов, который хранит записи и комментарии в базе данных. При переносе на SDB я столкнулся с этим ограничением. В итоге я сохранил записи и комментарии в виде файлов в S3 и прочитал это в своем коде. Поскольку этот сервер находится в EC2, трафик на S3 не стоит ничего лишнего.

Возможно, еще одна проблема, на которую следует обратить внимание, - это модель возможной согласованности в SDB. Вы не можете записать данные, а затем прочитать их обратно с любой гарантией того, что вновь записанные данные будут вам возвращены. Со временем данные будут обновлены.

Все это говорит, я все еще люблю SDB. Я не жалею о переходе на это. Я перешел с сервера SQL 2005. Я думаю, что у меня было намного больше контроля над SQL, но как только я откажусь от этого контроля, у меня будет больше гибкости. Не нужно предварительно определять схему - это круто. Сильный и надежный уровень кэширования в вашем коде позволяет легко сделать SDB более гибким.

35
ответ дан 7 November 2019 в 10:18
поделиться

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

5
ответ дан Vasil 7 November 2019 в 10:18
поделиться

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

5
ответ дан Nolte 7 November 2019 в 10:18
поделиться

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

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

Amazon SimpleDB также предлагает уровень бесплатного сервиса, таким образом, можно сохранить до 1 ГБ, передача до 1GB/month, максимум с помощью 25 часов машинного времени. В то время как этот предел звучит очень низким, то, что это свободно, позволяет некоторым клиентам низкого масштаба использовать технологию, не вкладывая капитал в крупную ферму сервера.

2
ответ дан Bill Karwin 7 November 2019 в 10:18
поделиться

Я создаю коммерческое приложение .NET, которое будет использовать SimpleDB в качестве основного хранилища данных. Я еще не в разработке, но я также занимаюсь созданием библиотеки с открытым исходным кодом, которая решает некоторые проблемы, связанные с использованием SimpleDB и RDBS. Некоторые из функций в моей дорожной карте связаны с упомянутыми вами проблемами:

  • Прозрачное разделение данных
  • Псевдотранзакционность
  • Прозрачное объединение атрибутов в превзойти ограничение в 1000 байт

SimpleDB все еще находится в активной разработке и, безусловно, в конечном итоге получит многие функции, которых у него нет сегодня (некоторые добавлены в основную систему, а некоторые в библиотеки кода).

Библиотека .NET это Simple Savant .

1
ответ дан 7 November 2019 в 10:18
поделиться

У меня около 50 ГБ в SimpleDB, разделенных на 30 доменов. Я использую это, чтобы разрешить использование нескольких ключей для объектов, хранящихся в S3, а также для снижения затрат на S3. Я не пробовал использовать SimpleDB для полнотекстового поиска, но я бы не стал его пробовать.

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

Вот описание того, как я скручиваю копейки с помощью SimpleDB

12
ответ дан 7 November 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: