2. 1. О задачах
2. О разновидностях (по структуре)
3. О разновидностях (CAP)
4. Об особенностях (транзакции, агрегаты)
5. Беглый обзор NoSQL решений
6. О проектном использовании
13. ● AC
Гибкие запросы, отличная согласованность, но отсутствие
горизонтального масштабирования: MySQL, MS SQL Server, Oracle DB
● AP
Географическая доступность: Cassandra*, MongoDB*,Couchbase
● CP
Аналитика, распределенные вычисления: HBase, MongoDB*
Назначение
14. Redis
● Open-source, НЕ распределенное, быстрое Key-Value
хранилище
● In-memory с сохранением на диск (append only log /
dump)
● Master-slave репликация (backup).
● Возможно хранить как простые примитивы, так и
сложные структуры (списки, словари, множества)
● Поддерживает сложные операции (работа с битовыми
масками, счетчики)
16. Aerospike
● Proprietary, распределенное, быстрое Key-Value
хранилище
● In-memory, SSD
● Шардинг
● Возможно хранить как простые примитивы, так и
сложные структуры
● Поддерживает вторичные индексы
17. Aerospike
● Встроенный язык Lua
● CP в CAP теореме
● Поддерживает репликацию между дата центрами
● Поддерживает сложные операции (compare and set,
set if unmodified, set if unique)
18. Couchbase
● Open-source, распределенное, документо-
ориентированное хранилище, может использоваться
как быстрое KV (кеш).
● Memcache - совместимое, с сохранением на диск.
● Protocol: memcached + extensions
● Язык запросов N1QL
19. Couchbase
● Все ноды равноценны (master-master replication)
● Отличный web интерфейс для управления
кластером
● Инкрементальный map/reduce
● Репликация между-дата центрами
● Вторичные индексы
20. MongoDB
● Open-source, распределенное, документо-
ориентированное хранилище
● Не равнозначные ноды Master/slave replication
● Протокол: Custom, binary (BSON)
● Javascript используется в качестве языка запросов
● Функции на стороне сервера. Инкрементальный
map/reduce
● Вторичные индексы
21. HBase
● Open-source, распределенная, версионная,
колоночная
● Хранит миллионы колонок, миллиарды записей.
● Работает по верх HDFS
● Используется для аналитики данных
● CP в CAP теореме
● Не поддерживает классический update
22. HBase
● Поддерживает:
○ Hadoop MapReduce
○ Random, fast read and write access
○ Запросы по диапазонам, с использованием
фильтров
○ Атомарный compare and set
○ Strong consistent reads and writes
● Не поддерживает:
○ ACID транзакции
23. Cassandra
● Open-source, распределенная, колоночная
● Хранит миллионы колонок, миллиарды записей.
● Самодостаточна (в отличии от HBase которая
работает по верх HDFS)
● AP/CP в CAP теореме
● Очень хороша для репликации данных между дата
центрами
24. Cassandra
● Поддерживает:
○ Язык CQL (без JION)
○ Конфигурируемая consistency
○ Random, fast read and write access
○ Атомарный compare and set, counters
○ MapReduce (нужен Hadoop)
○ Вторичные индексы*
● Не поддерживает:
○ ACID транзакции
25. HBase vs Cassandra
Это братья, а не конкуренты
Cassandra - AP (доступность)
HBase - CP (аналитика)
26. Neo4J
● Open-source, графовое хранилище
● Persistent disk-based storage written in Java
● ACID транзакции
● Миллиарды вершин на одном хосте.
● Индексы и атрибуты связи.
● Мощный поиск по графу через API и язык запросов
по графу Cypher
27. Транзакции, агрегаты, JOIN
● Транзакции не всегда нужны.
● Когда есть самодостаточные агрегаты.
● Блокировки на уровне агрегатов.
● JOIN -> Map-Reduce
28. В проектах: Tinkoff digital
● HBase - аналитика (сортированные данные, рандомный доступ, в
сравнении с логами)
● MongoDB - купились на шардинг и индексы (плохая идея)
32. Резюме
Нужен быстрый доступ к данным?
Redis, Aerospoke, Couchbase
BigData?
HBase, Cassandra
Разно-структурированные данные и гибкая
система запросов?
MongoDB