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

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

  • Upload
    ontico

  • View
    7.694

  • Download
    5

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CAP теорема

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопросы?• @stulentsev • [email protected] • http://tech.tulentsev.com