Как решить, какую технологию NoSQL использовать? - PullRequest
23 голосов
/ 17 сентября 2010

Каковы плюсы и минусы MongoDB (на основе документов), HBase (на основе столбцов) и Neo4j (график объектов)?

Мне особенно интересно узнать некоторые типичные варианты использования для каждого из них.

Каковы хорошие примеры проблем, которые графики могут решить лучше, чем альтернатива?

Может быть, любая достойная презентация Slideshare или Scribd?

Ответы [ 6 ]

48 голосов
/ 04 января 2011

MongoDB

Масштабируемость: Высокая доступность и согласованность, но отстой в отношениях и многих распределенных записях.Основное преимущество - хранение и индексация документов без схемы.Размер документа ограничен 4 МБ, и индексирование имеет смысл только для ограниченной глубины.См. http://www.paperplanes.de/2010/2/25/notes_on_mongodb.html

Лучше всего подходит для: Древовидные структуры с ограниченной глубиной

Примеры использования: Иерархии различных типов, Биологическая систематика, Библиотечные каталоги

Neo4j

Масштабируемость: Высоко доступно, но не распределено.Мощная структура обхода для скоростных обходов в пространстве узлов.Ограничено графиками около нескольких миллиардов узлов / отношений.См. http://highscalability.com/neo4j-graph-database-kicks-buttox

Лучше всего подходит для: Глубокие графики с неограниченной глубиной и циклическими, взвешенными связями

Примеры использования: Социальные сети, Топологический анализДанные семантической паутины, Логическое заключение

HBase

Масштабируемость: Надежное, согласованное хранение в петабайтах и ​​за его пределами.Поддерживает очень большое количество объектов с ограниченным набором разреженных атрибутов.Работает в тандеме с Hadoop для обработки больших объемов данных.http://www.ibm.com/developerworks/opensource/library/os-hbase/index.html

Лучше всего подходит для: направленных, ациклических графов

Примеры использования: Анализ журналов, Семантические веб-данные, Машинное обучение

4 голосов
/ 30 марта 2013

Проверьте это для быстрого сравнения NoSQL dbs:

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

4 голосов
/ 17 сентября 2010

Я знаю, что это может показаться странным местом, на которое можно указать, но Heroku недавно сошла с ума от своих предложений noSQL и получила хороший обзор многих текущих проектов. Это ни в коем случае не пресса Slideshare, но она поможет вам начать процесс сравнения:

http://blog.heroku.com/archives/2010/7/20/nosql/?utm_medium=email&utm_source=EmailBlast&utm_content=619506254&utm_campaign=HerokuSeptemberNewsletter-VersionB&utm_term=NoSQLHerokuandYou

0 голосов
/ 11 ноября 2015

MongoDB:

MongoDB - это база данных документов, в отличие от реляционной базы данных. В документе хранятся полуструктурированные данные, такие как объект JSON (без схемы)

Основные характеристики:

  1. Схема может меняться по мере развития приложения
  2. Полная индексация
  3. Балансировка нагрузки и передача данных
  4. Репликация данных
  5. Согласованность и разбиение в теории CAP (согласованность-доступность-разбиение)

Когда использовать:

  1. Аналитика в реальном времени
  2. Высокоскоростная регистрация
  3. Полуструктурированное управление данными

Когда не использовать:

  1. Высокотранзакционные приложения с сильными свойствами ACID (атомарность, согласованность, изоляция и долговечность). СУБД является предпочтительным в этом случае использования.
  2. Работа с наборами данных, включающими отношения - внешние ключи и т. Д.

Hbase:

HBase - это нереляционная распределенная база данных семейства столбцов с открытым исходным кодом

Основные характеристики:

  1. Обеспечивает отказоустойчивый способ хранения больших объемов разреженных данных (небольшие объемы информации, попадающие в большой набор пустых или неважных данных, например, поиск 50 наибольшие элементы в группе из 2 миллиардов записей или нахождение ненулевых элементов, составляющих менее 0,1% от огромной коллекции)
  2. Поддерживает переменную схему, где каждая строка отличается
  3. Может служить входом и выходом для задания MapReduce
  4. Сжатие, операции в памяти и фильтры Блума для каждого столбца (структура данных, предназначенная для быстрого и эффективного использования информации о наличии элемента в наборе) 5. Достигните CP на CAP

Когда использовать HBase:

  1. Если вы загружаете данные по ключу, ищите данные по ключу (или диапазону), обслуживаете данные по ключу, запрашиваете данные по ключу
  2. Хранение данных по строкам, которые не соответствуют схеме (схема переменной)

Когда не использовать HBase:

  1. Для реляционной аналитики
  2. полное сканирование таблицы
  3. Данные для агрегирования, анализа по строкам вместо столбцов

Neo4j:

Neo4j - база данных графа, использующая модель данных графа свойств (данные хранятся в виде графа и узлов и взаимосвязей со свойствами)

Основные характеристики:

  1. Поддерживает полные правила ACID (атомарность, согласованность, изоляция и долговечность)
  2. Поддерживает индексы с помощью Apache Lucence
  3. Схема без модели, модель данных снизу вверх
  4. Высокая масштабируемость достигнута за счет компактного хранения и кэширования памяти, доступной для графиков

Когда использовать:

  1. Управление основными данными
  2. Сетевые и ИТ-операции
  3. Рекомендации в реальном времени
  4. Обнаружение мошенничества
  5. Социальная сеть (например, Facebook)

Когда не использовать:

  1. Массовые запросы / сканы
  2. Если ваше приложение требует разбиения и разделения данных

Взгляните на сравнение различных технологий NoSQL в этой статье

Источники:

Wiki, Slide share , Cloudera , Учебное пособие Point , Neo4j

0 голосов
/ 20 ноября 2014

Вы также можете оценить Multi-Model СУБД, как второе поколение продукта NoSQL.С мультимоделью у вас нет всех компромиссов при выборе только одной модели, а более одной модели.

Первая многомодельная NoSQL - OrientDB .

0 голосов
/ 17 сентября 2010

Довольно приличная статья о MongoDB и NoRM (расширения .net для MongoDB) http://lukencode.com/2010/07/09/getting-started-with-mongodb-and-norm/

...