[Moscow.pm] mongodb & other non-sql dbs

Dmitry Simonov dsimonov на gmail.com
Пт Фев 4 04:00:07 PST 2011


Привет! На днях увидел сравнительную характеристику no-sql баз с
указанием наиболее удобных сфер применения.


CouchDB (Erlang)
--------------
Удобнее использовать для накопления и нечастого изменения данных с
заранее определёнными выборками (predefined queries), когда
версифицирование данных имеет очень высокое значение.

Например CRM и CMS. Масштабированию способствует встроенная
возможность репликации по схеме мастер-мастер.

Redis (C/C++)
--------------
Удобнее использовать для хранения постоянно и часто изменяемых данных
с небольшим суммарным объёмом (до размером оперативной памяти).

Например биржевые котировки, аналитика, сбор данных и коммуникации в
режиме реального времени.


MongoDB (C++)
--------------
Удобнее использовать для большого объёмы динамических запросов, для
использования индексов, а не map/reduce функций. Если требуется
хорошая производительность на больших объёма. Если вы хотите CouchDB,
но изменения данных слишком много и они перестают помешаться на
дисках.

Например все задачи, которые бы вы хотели сделать с использование
MySQL или PostgreSQL, будь у них динамически определяемые колонки :)

Cassandra (Java)
--------------
Лучше всего использовать: Когда вы пишете больше, чем вы читали
(лесозаготовки). Если все компоненты системы должны быть в Java.
("Никто не увольняют по выбору материала Apache.")

Удобнее использовать, когда вы больше пишете, чем читаете
(логирование). Ну и разумеется когда все используемые компоненты
должны быть на Java. ("No one gets fired for choosing Apache's
stuff.")

Например, банковский и финансовый сектор (необязательно для финансовых
транзакций, так как эти сектора раскинули свои щупальца вообще всюду).
Cassandra пишет быстрее, чем читает, что обеспечивает естесственную
нишу real-time обработки данных.

Riak (Erlang & C, чуть-чуть Javascript)
--------------

Удобнее использовать если вы хотите что-то типа Cassandra, но без
наворотов. Если требуется простая масштабируемость, доступность и
отказоустойчивость для одного сервиса, но вы готовы заплатить и за
мульти-сервисную репликацию.

Например для точек продаж, а также контроля заводской деятельности,
где даже секунды простоя являются фейлом.


HBase (Java)
--------------
Удобнее использовать, если вы любите BigTable :) А также когда
требуется случайное чтение-запись в режиме реального времени для
доступа к вашему BigData.

Например Facebook Messaging Database (другие большие примеры ожидаются...)


Оригинал: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Там же есть подробности из чего состоят базы.


---
С искр. ув. Д.Симонов


Подробная информация о списке рассылки Moscow-pm