2012-02-25 6 views
0

Имеется ли доступная в Интернете высокопроизводительная система хранения NoSQL на базе диска? Хорошая вещь о SQL Server заключается в том, что он масштабируется, но кошмар - перенос моего проекта в таблицы SQL, так как это все объекты?Основанное на диске хранилище на основе документов

Варианты: 1. Запустите из памяти 2. Serialize документ 3. Измени в SQL 4. Использование большого хранения данных NoSQL

+0

большинство NoSQL основаны на дисках. как Лазурный Стол Хранение, очень хорошо. НО, нет бесплатной –

+0

Я не думаю, что есть свободные, позволяют вам хранить массовые данные (я помню, что S3 может хранить небольшие данные бесплатно), возможно, вы можете использовать службу хостинга файлов, такую ​​как DropBox, а затем индексировать свой ключ в SQL Server –

+2

" Хорошая вещь о SQL Server заключается в том, что он масштабируется "- Действительно ?! На самом деле это совершенно противоположно. –

ответ

3

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

Вы можете download it и запустить его локально, или вы можете использовать один из free hosted solutions.

0

Существует множество параметров NoSQL, которые предлагаются на лицензии с открытым исходным кодом (GPL или Apache). Во время поиска я наткнулся на этот listing, который идет честно, давая сравнение функций некоторых опций.

Если вы связаны с наличием поддерживаемого C# клиента, вы будете немного более ограниченными, но я бы посмотрел на MongoDB и Redis, потому что я использовал их в прошлом с хорошими результатами.

1

В последние недели я занимался тем же вопросом; вот мои наблюдения:

  1. SQL Server работает, но не масштабируется хорошо. Мы протестировали базу данных SQL Server объемом около 600 ГБ, и давайте просто скажем, что все происходит очень медленно.
  2. Более или менее то же самое относится к MySQL ... оба они не предназначены для документов ...
  3. Hadoop/HDFS не выглядит зрелым в Windows. Хотя Microsoft имеет доступную HDFS-версию, она все еще находится в фазе RC. С положительной стороны, если вы развиваетесь на будущее (скажем, 1 год на производство), это, кажется, хороший выбор.
  4. Apache Cassandra кажется зрелым. Положительно, реализация очень проста; то есть: в основном это просто распределенное хранилище ключей с одним разделителем, где ключ и значение являются байтом []. Однако простота реализации также означает, что вам необходимо обойти всевозможные проблемы. Если вы с ним работали, вы знаете, что это блестяще, если вам нужно реализовать Twitter, но слишком просто для чего угодно. Он хорошо масштабируется, но, честно говоря, я не слишком впечатлен выступлением. Кроме того, я столкнулся с несколькими несоответствиями данных/искажениями, которые на самом деле не согревают мое сердце ... Если вы используете Cassandra, я лично использовал бы Aquiles как клиент (потому что вы легко столкнетесь с низкоуровневыми вещами) - но FluentCassandra - прекрасный клиент.
  5. MongoDB также достаточно зрелый. С положительной стороны, он активен и имеет очень хорошую и удобную (в отличие от Cassandra) клиентскую библиотеку C#. Кроме того, хотя сервер осколков разбился пару раз на моем кластере, восстановление всегда делало трюк (и я не слишком вежлив с перезагрузками :-), и все проблемы, с которыми я столкнулся, похоже, уже решены в ветке разработки - поэтому я не чувствую дискомфорта по этому поводу. Самое главное, что MongoDB и Cassandra не хватает, это поддержка вторичных индексов.

Все эти решения основаны на дисках (например, постоянство на диске).

Я просмотрел код 3-5 и реализовал свое собственное решение NoSQL в прошлом (около 6 лет назад), которое мы использовали для хранения данных в течение последних лет.Честно говоря, MongoDB - это то, как я сам бы это реализовал.

Для полноты: единственное, что я еще не пробовал, это CouchDB ... но, честно говоря, я так доволен MongoDB, что я даже не буду беспокоиться.

-Stefan.