NoSQL - коротко о главном / Сергей Туленцев (TextMaster)

Preview:

Citation preview

NoSQL - коротко о главномСергей Туленцев

TextMaster• фриланс-биржа • нами пользуются... • не используем SQL

О чем и зачем?• Обзорный доклад • Показания к применению • Противопоказания

NoSQL• Была такая БД • #hashtag gone viral • ~ 150 разных БД

(по версии http://nosql-database.org)

По типам данных• key/value storeRedisMemcachedRiak

По типам данных• document storeMongoDB CouchDBElasticSearch

По типам данных• column storeHBaseCassandraVertica

По типам данных• graph databaseNeo4j

По типам данных• multi-model databaseFoundationDBArangoDBOrientDB

По способу хранения• in-memory • persistent • in-place updates • snapshots • append-only log

CAP теорема

CAP теорема• AP или CP • Eventual consistency • по времени • вручную • CRDT

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

Когда использовать?• Высокая масштабируемость

Когда использовать?• Быстрое прототипирование

Когда использовать?• Высокая доступность

Когда использовать?• Кэширование

Когда использовать?• Очередь заданий

Когда использовать?• Хранилище бинарников

Когда использовать?• Быстрые счетчики

Когда использовать?• Эффективная оценка кардинальности множеств HyperLogLog http://antirez.com/news/75

Когда использовать?• CMS

Когда использовать?• Полнотекстовый поиск

Анти-паттерны• ваши данные реляционны

Анти-паттерны• Излишний embedding{ author: {email: '...'}, comments: [ { text: '...', author: { email: '...'} },

Анти-паттерны• недостаточный embedding { tags: ['ruby', 'nosql'] }{ tag_ids: [12346, 680998]}

Анти-паттерны• неверно выбранный тип данных

Анти-паттерны• недостаточно продуманная схема данных

Заключение (кэп)• Знайте свою предметную область

• Следите за новостями • Выбирайте БД не только по пресс-релизам.

Вопросы?• @stulentsev • sergei.tulentsev@gmail.com • http://tech.tulentsev.com

Recommended