В последние недели я занимался тем же вопросом; вот мои наблюдения:
- SQL Server работает, но не масштабируется хорошо. Мы протестировали базу данных SQL Server объемом около 600 ГБ, и давайте просто скажем, что все происходит очень медленно.
- Более или менее то же самое относится к MySQL ... оба они не предназначены для документов ...
- Hadoop/HDFS не выглядит зрелым в Windows. Хотя Microsoft имеет доступную HDFS-версию, она все еще находится в фазе RC. С положительной стороны, если вы развиваетесь на будущее (скажем, 1 год на производство), это, кажется, хороший выбор.
- Apache Cassandra кажется зрелым. Положительно, реализация очень проста; то есть: в основном это просто распределенное хранилище ключей с одним разделителем, где ключ и значение являются байтом []. Однако простота реализации также означает, что вам необходимо обойти всевозможные проблемы. Если вы с ним работали, вы знаете, что это блестяще, если вам нужно реализовать Twitter, но слишком просто для чего угодно. Он хорошо масштабируется, но, честно говоря, я не слишком впечатлен выступлением. Кроме того, я столкнулся с несколькими несоответствиями данных/искажениями, которые на самом деле не согревают мое сердце ... Если вы используете Cassandra, я лично использовал бы Aquiles как клиент (потому что вы легко столкнетесь с низкоуровневыми вещами) - но FluentCassandra - прекрасный клиент.
- MongoDB также достаточно зрелый. С положительной стороны, он активен и имеет очень хорошую и удобную (в отличие от Cassandra) клиентскую библиотеку C#. Кроме того, хотя сервер осколков разбился пару раз на моем кластере, восстановление всегда делало трюк (и я не слишком вежлив с перезагрузками :-), и все проблемы, с которыми я столкнулся, похоже, уже решены в ветке разработки - поэтому я не чувствую дискомфорта по этому поводу. Самое главное, что MongoDB и Cassandra не хватает, это поддержка вторичных индексов.
Все эти решения основаны на дисках (например, постоянство на диске).
Я просмотрел код 3-5 и реализовал свое собственное решение NoSQL в прошлом (около 6 лет назад), которое мы использовали для хранения данных в течение последних лет.Честно говоря, MongoDB - это то, как я сам бы это реализовал.
Для полноты: единственное, что я еще не пробовал, это CouchDB ... но, честно говоря, я так доволен MongoDB, что я даже не буду беспокоиться.
-Stefan.
большинство NoSQL основаны на дисках. как Лазурный Стол Хранение, очень хорошо. НО, нет бесплатной –
Я не думаю, что есть свободные, позволяют вам хранить массовые данные (я помню, что S3 может хранить небольшие данные бесплатно), возможно, вы можете использовать службу хостинга файлов, такую как DropBox, а затем индексировать свой ключ в SQL Server –
" Хорошая вещь о SQL Server заключается в том, что он масштабируется "- Действительно ?! На самом деле это совершенно противоположно. –