[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