Я полный ползунок, когда дело касается движения NoSQL. Я много слышал о MongoDB и CouchDB. Я знаю, что между ними есть различия. Что вы рекомендуете изучать как первый шаг в мире NoSQL?
NoSQL - MongoDB vs CouchDB
Ответ 1
Смотрите следующие ссылки
- CouchDB против MongoDB
- MongoDB или CouchDB - подходят для производства?
- DB-Engines - Сравнение CouchDB и MongoDB
Обновление: я нашел отличное сравнение баз данных NoSQL.
MongoDB (3.2)
- Написано в: C++
- Основной момент: хранилище документов JSON
- Лицензия: AGPL (Драйверы: Apache)
- Протокол: Пользовательский, двоичный (BSON)
- Репликация master/slave (автоматическое переключение при сбое с наборами реплик)
- Sharding встроенный
- Запросы являются выражениями JavaScript
- Запускать произвольные функции JavaScript на стороне сервера
- Имеет геопространственную индексацию и запросы
- Несколько систем хранения с различными эксплуатационными характеристиками
- Производительность над функциями
- Проверка документов
- Журналирование
- Мощная структура агрегации
- В 32-битных системах, ограничено ~ 2,5 Гб
- Интегрированный текстовый поиск
- GridFS для хранения больших данных + метаданных (на самом деле не FS)
- Центр обработки данных осведомлен
Лучше всего использовать: если вам нужны динамические запросы. Если вы предпочитаете определять индексы, а не отображать/сокращать функции. Если вам нужна хорошая производительность на большой БД. Если вы хотели CouchDB, но ваши данные слишком сильно меняются, заполняя диски.
Например: для большинства вещей, которые вы делаете с MySQL или PostgreSQL, но наличие предопределенных столбцов действительно сдерживает вас.
CouchDB (1.2)
- Написано в: Erlang
- Основной момент: согласованность БД, простота использования
- Лицензия: Apache
- Протокол: HTTP/REST
- Двунаправленная (!) Репликация,
- непрерывный или специальный,
- с обнаружением конфликта,
- Таким образом, мастер-мастер репликации. (!)
- MVCC - операции записи не блокируют чтения
- Предыдущие версии документов доступны
- Аварийный (надежный) дизайн
- Время от времени требует уплотнения
- Просмотры: встроенная карта/уменьшить
- Форматирование просмотров: списки и шоу
- Возможна проверка документов на стороне сервера
- Аутентификация возможна
- Обновления в режиме реального времени через _changes (!)
- Обработка вложений
Лучше всего использовать: для накопления, иногда изменяющихся данных, для которых должны выполняться предварительно определенные запросы. Места, где важно управление версиями.
Например: CRM, CMS системы. Репликация мастер-мастер - это особенно интересная функция, позволяющая легко развертывать несколько сайтов.
Ответ 2
Если вы приехали из мира MySQL, MongoDB будет "чувствовать" гораздо более естественным для вас из-за поддержки запросов на языке.
Я думаю, что это делает его настолько дружелюбным для многих людей.
CouchDB фантастичен, если вы хотите использовать действительно отличную поддержку репликации master-master с помощью установки multi- node, возможно, в разных центрах обработки данных или что-то в этом роде.
Репликация MongoDB (набор реплик) является установкой master-slave-slave-slave- *, вы можете писать только мастеру в наборе реплик и читать из любого из них.
Для стандартной конфигурации сайта это нормально. Он очень хорошо отображает использование MySQL.
Но если вы пытаетесь создать глобальную службу, такую как CDN, которая должна поддерживать синхронизацию всех глобальных узлов, даже если чтение/запись для всех из них, что-то вроде репликации в CouchDB станет для вас огромным благом.
В то время как MongoDB имеет язык, похожий на запрос, который вы можете использовать и чувствуете себя очень интуитивно понятным, CouchDB использует подход с уменьшением "карты" и эти концепции представлений. Сначала это кажется странным, но, как вы его понимаете, он действительно начинает чувствовать себя интуитивно понятным.
Вот краткий обзор, поэтому он имеет смысл:
- CouchDB сохраняет все ваши данные в дереве b-tree
- Вы не можете "запросить" его динамически с помощью чего-то вроде "SELECT * FROM user WHERE..."
- Вместо этого вы определяете дискретные "представления" ваших данных... "вот представление обо всех моих пользователей", "вот представление всех пользователей старше 10", "здесь приведен вид всех пользователей старше, чем 30" и т.д.
- Эти представления определяются с использованием подхода map-reduce и определяются как функции JavaScript.
- Когда вы определяете представление, БД начинает подавать все документы БД, которым вы назначили представление, через него и записывать результаты своих функций как "индекс" этих данных.
- Есть несколько базовых запросов, которые вы можете делать на представлениях, таких как запрос определенного ключа (ID) или диапазона идентификаторов, независимо от того, что делает ваша функция map/reduce.
- Прочитайте эти слайды, это лучшее разъяснение карты/уменьшения в Couch, которое я видел.
Таким образом, оба этих источника используют JSON-документы, но CouchDB следует этому более "универсальному и может синхронизироваться с миром", что является фантастическим, если вам это нужно, в то время как MongoDB на самом деле является MySQL мира NoSQL.
Итак, если это больше похоже на то, что вам нужно/нужно, пойдите для этого.
Небольшие различия, такие как бинговый протокол Mongo, и интерфейс RESTful CouchDB - все мелкие детали.
Если вам нужна необработанная скорость и, к черту, безопасность данных, вы можете заставить Mongo работать быстрее, чем CouchDB, поскольку вы можете сказать, что он работает из памяти, а не передает вещи на диск, за исключением редких интервалов.
Вы можете сделать то же самое с Couch, но протокол HTTP-протокола будет на 2-4 раза медленнее, чем сырая двоичная связь с Mongo в этой "скорости над всем!". сценарий.
Имейте в виду, что безумная безумная скорость бесполезна, если сбой сервера или сбой диска развращают и тосты вашей БД в забвение, так что точка данных не такая удивительная, как может показаться (если вы не делаете торговлю в реальном времени системы на Уолл-стрит, и в этом случае посмотрите на Redis).
Надеюсь, что все это поможет!
Ответ 3
Посмотрите на эти ссылки:
Ответ 4
На рынке появилось много новых баз данных NoSQL, чем когда-либо прежде. Я предлагаю даже взглянуть на магический квадрант Gartner, если вы ищете базу данных, которая также будет полезна для корпоративных приложений на основе поддержки, расширяемости, управления и стоимости.
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
Я хотел бы предложить Couchbase всем, кто еще не пробовал, но не основан на версии, показанной в отчете (2.5.1), потому что это почти 2 версии, за которыми стоит CB Server сегодня, приближаясь к выпуску 4,0 в 2H15.
http://www.couchbase.com/coming-in-couchbase-server-4-0
Другая часть, касающаяся Couchbase как поставщика/продукта, заключается в том, что это многопользовательский тип БД. Он может выступать в качестве чистого хранилища K/V, Document Oriented Database с многомерным масштабированием, Memcached, кэшировать с сохранением и поддерживает ANSI 92-совместимый SQL с автоматическими объединениями, репликацией на кластеры DR одним нажатием кнопки и даже имеет мобильный компонент, встроенный в экосистему.
Если ничего другого, стоит проверить последние тесты:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html
Ответ 5
Видео Edureka в youtube относительно NoSQL - одни из лучших видеоуроков. Я начал с MongoDb и Cassandra после просмотра этих видеороликов.
https://www.youtube.com/watch?v=gJFG04Sy6NY
https://www.youtube.com/watch?v=KSq6tMMXZ8s
https://www.youtube.com/watch?v=3z1KFA2qcSo
Хорошие презентации доступны на slideshare.net
http://www.slideshare.net/quipo/nosql-databases-why-what-and-when?qid=3bb9f7f6-a53d-41b1-8403-cd6f181d0ca7&v=qf1&b=&from_search=1
http://www.slideshare.net/EdurekaIN/no-sql-databases-35591065?qid=f1b9c095-6d70-4d0a-91da-1df664c4f389&v=qf1&b=&from_search=3
Презентация Edureka в слайд-шоу - это расширение видео на YouTube. Вы можете рассматривать эту презентацию как сводку видео YouTube.