SlideShare uma empresa Scribd logo
1 de 43
Выбор NoSQL базы данных
для вашего проекта:
"Не в свои сани не садись"
Докладчик: Алексей Зиновьев
● аспирант ОмГУ, математик
● занимаюсь теорией графов, прогнозированием
пробок, исследованием транспортных систем
● большой фанат различных Maps API
● лидер GDG Omsk, соорганизатор IT-субботников
О чем этот доклад?
Отдохнул
на базе…
данных
Мир NoSQL баз данных велик и ужасен и каждая
хороша в чем-то своем. А в чем именно? На чем
основываться, выбирая NoSQL решение для своего
проекта? Может быть на предпочтениях бабушки
вашего ведущего программиста или на основе
забрасывания сапога за ворота в ночь перед
Рождеством? Давайте попробуем разобраться в
критериях оценки и выявить различия между самыми
популярными вариантами. Нас ждет увлекательный
полет над гладью болот MongoDB, Cassandra, Riak,
Hbase, Neo4j, CouchDB. А в тихом омуте, как известно, и
черти водятся.
Эмоции
Эмоции
● То, что мы чувствуем важно
● Мода и тренд
● Протест и компромисс
● Запечатление и эффект
якоря влияют на нас не
меньше чем умные статьи
● Через это должен пройти
каждый и этот этап не
стоит откладывать
Эмоции: за что я не люблю ...
CouchBase, потому
что я замучался его
тестировать

Кассандра навязывает
ограниченный cql и
относительно медлено
читает и без гектора
никуда

Hbase не знаю,
но осуждаю
Монга модная,
сложная и
ненадежная
Riak немного
нервирует, потому
что я его не знаю
Рынок баз данных
Мифы - это часть борьбы
Утверждение

Процент согласных

Mongo - ненадежна и падает

45%

Cassandra надежна, устойчива и почти не падает

53%

CouchDB предназначен для веба

35%

Neo4j нужен только, чтобы хранить граф социальных
сетей

54%

Hbase нужна только тем, кто не может прикрутить к
Hadoop другой нормальной базы

70%

Mongo имеет отличный встроенный MapReduce

62%

Cassandra навязывает нам SQL - подход

86%
Суровая реальность
● Нет базы “моей мечты”
● Чтобы решать задачи,
необходимо знакомство с
основными парадигмами и
их воплощениями
● Если вы будете, вопреки
голосу разума, цепляться
за первую любовь - вас
ждет поражение
Принципы приличной NoSQL
● Масштабируемость
(автоматическое
распределение данных)
● Поддержка нескольких
датацентров
● Возможность добавлять
прозрачно новые сервера
● Собственная, отличная от
реляционной, модель
данных
● Согласованность в
конечном счете
Критерии сравнения NoSQL
●
●
●
●
●
●
●
●
●
●
●

кривая обучения
производительность
возможности языка запросов
свои фреймворки и “ORM”
простота интеграции с Hadoop, поддержка MapReduce
поддержка основных языков программирования
наличие вспомогательных средств для работы
мобильная версия СУБД
поддержка основных концепций по управления данными
сфера влияния и распространение в проектах
наличие конкурентов при решении определенной задачи
Категоризация NoSQL систем
Data Model Performance

Scalability

Flexibility

Complexity

Functionality

Key–value
Stores

high

high

high

none

variable (none)

Column
Store

high

high

moderate

low

minimal

Document
Store

high

variable
(high)

high

low

variable (low)

Graph
Database

variable

variable

high

high

graph theory

Relational
Database

variable

variable

low

moderate

relational algebra
Сравнение возможностей I
Модель
данных

API запросов Система хранения
данных

Cassandra

Семейства
столбцов

Thrift

Memtable/SSTable

CouchDB

Документы

Map/Reduce

Append-only-B-tree

Hbase

Семейства
столбцов

Thrift, REST

Memtable/SSTable on HDFS

MongoDB

Документы

Cursor

B-tree

Neo4j

Графы

Graph

On-disk linked lists

Riak

Ключ/Значение

Nested hashes,
REST

Hash
Сравнение возможностей II
Вторичные
индексы

MapReduce

Произвольные запросы

Cassandra

да

нет

CQL (no joins)

CouchDB

да

JavaScript

временные представления

Hbase

нет

Hadoop

слабая поддержка

MongoDB

да

JavaScript

полный набор (no joins)

Neo4j

да (с помощью
Lucene)

нет (графы и
MapReduce?)

обход графа, поиск

Riak

да

JavaScript,
Erlang

слабая поддержка, Lucene
Riak: преимущества
● Отказоустойчивость (кольцо)
● Links (ссылки на другие
ключи) + фильтры ключей
● MapReduce (Erlang + JS)
● REST
● Подсистема поиска
● Возможность настройки
параметров согласованности
и доступности на уровне
отдельного запроса
Riak: недостатки
● Бедные возможности
запросов
● Нет ACID
● Неполноценная поддержка
JavaScript
● Отсутствие поддержки
структур данных
Mongo: преимущества
●
●
●
●

Полноценный язык запросов
Aggregation framework
Mongo + Node.js + JS
Хранение сложных
денормализованных
документов
● Большой выбор индексов (Btree, 2d, 3d
● Репликация данных и
сегментирование коллекций
● Community
Mongo: недостатки
● Ограничение на размер
результата (16 Мб)
● Проблема четного числа
узлов и сложные выборы
● Опечатка стоит дорого
● Над планированием
кластера надо думать
● Иногда навязывает
воспроизведение схемы в
коде (проверка типов и т.д.)
CouchDB: преимущества
● Функции-фильтры и как
следствие “псевдошардинг”
● Мобильная версия
● Простота встраивания и
резервного копирования
● Функции-валидаторы,
функции-представления,
функции-фильтры
сохраняются в текстовом виде
в самой базе данных
CouchDB: недостатки
● Не всегда удобная система
репликации (“все или
ничего”)
● Неполноценный язык
запросов, основанный на
MapReduce операциях над
представлениями
● Нет нормального механизма
сегментирования
HBase: преимущества
● Версионирование и сжатие
● Горизонтальное
масштабирование
● Первое место по обработке
трудоемких запросов
● Быстрое восстановление
после отказа
● Отзывчивое community
энтузиастов
● Тесная интеграция с Hadoop
HBase: недостатки
● Суровая документация и
высокий порог вхождения
● Заимствованная
терминология из мира SQL
скорее мешает
● Надо не менее 5 узлов
● Нет средств сортировки и
индексирования
● Строгая согласованность без
возможности изменений
Cassandra: преимущества
● Высокая доступность,
восстановление на ходу
● Нет центральной точки
отказа
● Datastax, Hector и все-все-все
● CQL - SQL без join
● Строка может динамически
раcширяться до 2
миллиардов колонок
● Резервное копирование не
нужно
Cassandra: недостатки

● Непростая (по сравнению с Hbase) интеграция с
Hadoop
● Моделирование таблиц зависит от ваших запросов
● Нет ACID, нет откатов
● Сложность в моделировании (необходимо сильно
поменять взгляд на моделирование данных)
● Требовательная к RAM
Neo4j: преимущества
● Оптимальна для
сильносвязанных сущностей
● Вершины, ребра, атрибуты
● Индексы на значения
атрибутов
● ACID
● REST API + Cypher
● Множество плагинов,
включая 2d индекс
Neo4j: недостатки
● Нет полноценного
горизонтального
масштабирования
● Плохо приспособлен для
размещения на нескольких
машинах
● Для полноценного удаления
приходится перезапускать
сервер
Чемпионы-тяжеловесы
Граф

Число
вершин

Число
ребер

Объем данных
на диске

Прирост в
день

Web-граф

1 трлн

8 трлн

100 PB

300 TB

Facebook (граф 1 млрд
друзей)

140
млрд

1 PB

15 TB

Дорожный
граф Европы

18 млн

42 млн

20 GB

50 MB

Дорожный
граф Омска

80 000

160 000

300 MB

500 KB
Фаза исследования
Эту фазу не стоит пропускать,
ибо это единственная фаза,
которая позволяет вам
экономить деньги.
До ее начала необходимо
ответить себе на вопросы о
характере ваших данных и
сформулировать требования по
их использованию.
Первая развилка: связи
В вашем приложении есть сеть
данных, граф знаний, а самый
популярный запрос связан с
обходом сложной иерархии
объектов?
Вы готовы отказаться
размещения на нескольких
машинах?
Neo4j спешит на помощь!
Вторая развилка: BigData

Данные о достаточно большом количестве
объектов, изменяющихся во времени и
пространстве (движения звезд, личная
переписка, фотки в Instagram)
Вторая развилка: BigData

Придется попрощаться с SQL и
наращиванием мощности одного
сервера.
Впрочем и Neo4j для этого не готов
Третья развилка: простота
Нужно лишь чтение/запись по
ключу, безграничное
масштабирование, отсутствие
точек общего отказа
Между данными почти нет
связей.
Riak оставляет всех позади
себя, добавляя возможность
MapReduce над вашими
данными.
Четвертая развилка: иерархия
Структура данных отличается
высокой изменчивостью и
большой вложенностью.
Связность отдельных
сегментов данных невысока.
Riak уходит, на сцену выходит
Mongo DB, кружась в
смертельном танго с CouchDB.
Пятая развилка: отчеты
Необходима обработка и
сложная агрегация данных
при помощи Hadoop.
Данные довольно плоские.
Hbase царствует безраздельно,
но Cassandra наступает ей на
пятки, предлагая ряд
преимуществ.
О данных замолвите слово
● Данные - это океан,
полный морских существ
● Но пока они не выловлены,
пользы от никакой
● Средство лова: удочку,
сеть, глушить гранатой или
вычерпывать кастрюлей,
выбираем мы сами
Список источников
1. Эрик Редмонд, Джим Р. Уилсон “Семь баз данных
за семь недель”
2. “A generic intro to NoSQL” by Ben Scofield.
3. http://nosql-database.org/
4. Исследования компании Тамтэк
5. Собственные исследования
Данные - все, способ хранения
- ничто!
Вопросы?

Mais conteúdo relacionado

Mais procurados

NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхVasil Remeniuk
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахAlexander Mezhov
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache CassandraAlexander Tivelkov
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015Shamim bhuiyan
 
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеАлексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеVolha Banadyseva
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Ontico
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Антон Шестаков
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данныхОмские ИТ-субботники
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Ontico
 
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данныхCodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данныхCodeFest
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Ontico
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 

Mais procurados (20)

NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Cassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системахCassandra: быстрая запись данных в высоконагруженных системах
Cassandra: быстрая запись данных в высоконагруженных системах
 
Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015
 
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеАлексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проекте
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данныхCodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
CodeFest 2012. Нелюбин Д. — Neo4j — графовая база данных
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 

Destaque

Вадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИСВадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИСOntico
 
NoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий НикулинNoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий НикулинAnatoliy Nikulin
 
Преимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBПреимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBUNETA
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...IT-Portfolio
 
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Alexey Rusnak
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...IT-Portfolio
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...IT-Portfolio
 
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Ontico
 

Destaque (8)

Вадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИСВадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИС
 
NoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий НикулинNoSQL thumbtack experience, Анатолий Никулин
NoSQL thumbtack experience, Анатолий Никулин
 
Преимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBПреимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDB
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
 
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
 
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
 

Semelhante a Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"

Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах EmbarcaderoПоддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateAlexey Zinoviev
 
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!Омские ИТ-субботники
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.mikhaelsmirnov
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БДAndrew Sovtsov
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub.NET User Group Dnipro
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхСергей Макрушин
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхSergey Makrushin
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...it-people
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor Sukharevigorsukharev
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevAlexander Klimov
 
специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)Ontico
 
Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-системRoman Ivliev
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системTKConf
 

Semelhante a Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись" (20)

Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах EmbarcaderoПоддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs Hibernate
 
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Highload 2011-demona
Highload 2011-demonaHighload 2011-demona
Highload 2011-demona
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
 
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor SukharevThe impact of the cloud on development by Alexander Klimov, Igor Sukharev
The impact of the cloud on development by Alexander Klimov, Igor Sukharev
 
специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)специализированные http-демона (Сергей Боченков, Александр Панков)
специализированные http-демона (Сергей Боченков, Александр Панков)
 
Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
 

Mais de Alexey Zinoviev

Kafka pours and Spark resolves
Kafka pours and Spark resolvesKafka pours and Spark resolves
Kafka pours and Spark resolvesAlexey Zinoviev
 
Java BigData Full Stack Development (version 2.0)
Java BigData Full Stack Development (version 2.0)Java BigData Full Stack Development (version 2.0)
Java BigData Full Stack Development (version 2.0)Alexey Zinoviev
 
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)Alexey Zinoviev
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
 
JavaDayKiev'15 Java in production for Data Mining Research projects
JavaDayKiev'15 Java in production for Data Mining Research projectsJavaDayKiev'15 Java in production for Data Mining Research projects
JavaDayKiev'15 Java in production for Data Mining Research projectsAlexey Zinoviev
 
Joker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDBJoker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDBAlexey Zinoviev
 
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...Alexey Zinoviev
 
Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...
Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...
Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...Alexey Zinoviev
 
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)Alexey Zinoviev
 
Joker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data ScientistJoker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data ScientistAlexey Zinoviev
 
First steps in Data Mining Kindergarten
First steps in Data Mining KindergartenFirst steps in Data Mining Kindergarten
First steps in Data Mining KindergartenAlexey Zinoviev
 
EST: Smart rate (Effective recommendation system for Taxi drivers based on th...
EST: Smart rate (Effective recommendation system for Taxi drivers based on th...EST: Smart rate (Effective recommendation system for Taxi drivers based on th...
EST: Smart rate (Effective recommendation system for Taxi drivers based on th...Alexey Zinoviev
 
Android Geo Apps in Soviet Russia: Latitude and longitude find you
Android Geo Apps in Soviet Russia: Latitude and longitude find youAndroid Geo Apps in Soviet Russia: Latitude and longitude find you
Android Geo Apps in Soviet Russia: Latitude and longitude find youAlexey Zinoviev
 
Keynote on JavaDay Omsk 2014 about new features in Java 8
Keynote on JavaDay Omsk 2014 about new features in Java 8Keynote on JavaDay Omsk 2014 about new features in Java 8
Keynote on JavaDay Omsk 2014 about new features in Java 8Alexey Zinoviev
 
Big data algorithms and data structures for large scale graphs
Big data algorithms and data structures for large scale graphsBig data algorithms and data structures for large scale graphs
Big data algorithms and data structures for large scale graphsAlexey Zinoviev
 
"Говнокод-шоу"
"Говнокод-шоу""Говнокод-шоу"
"Говнокод-шоу"Alexey Zinoviev
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиAlexey Zinoviev
 
ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)Alexey Zinoviev
 

Mais de Alexey Zinoviev (20)

Kafka pours and Spark resolves
Kafka pours and Spark resolvesKafka pours and Spark resolves
Kafka pours and Spark resolves
 
Java BigData Full Stack Development (version 2.0)
Java BigData Full Stack Development (version 2.0)Java BigData Full Stack Development (version 2.0)
Java BigData Full Stack Development (version 2.0)
 
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
 
Hadoop Jungle
Hadoop JungleHadoop Jungle
Hadoop Jungle
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
JavaDayKiev'15 Java in production for Data Mining Research projects
JavaDayKiev'15 Java in production for Data Mining Research projectsJavaDayKiev'15 Java in production for Data Mining Research projects
JavaDayKiev'15 Java in production for Data Mining Research projects
 
Joker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDBJoker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDB
 
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
 
Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...
Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...
Python's slippy path and Tao of thick Pandas: give my data, Rrrrr...
 
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
 
Joker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data ScientistJoker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data Scientist
 
First steps in Data Mining Kindergarten
First steps in Data Mining KindergartenFirst steps in Data Mining Kindergarten
First steps in Data Mining Kindergarten
 
EST: Smart rate (Effective recommendation system for Taxi drivers based on th...
EST: Smart rate (Effective recommendation system for Taxi drivers based on th...EST: Smart rate (Effective recommendation system for Taxi drivers based on th...
EST: Smart rate (Effective recommendation system for Taxi drivers based on th...
 
Android Geo Apps in Soviet Russia: Latitude and longitude find you
Android Geo Apps in Soviet Russia: Latitude and longitude find youAndroid Geo Apps in Soviet Russia: Latitude and longitude find you
Android Geo Apps in Soviet Russia: Latitude and longitude find you
 
Keynote on JavaDay Omsk 2014 about new features in Java 8
Keynote on JavaDay Omsk 2014 about new features in Java 8Keynote on JavaDay Omsk 2014 about new features in Java 8
Keynote on JavaDay Omsk 2014 about new features in Java 8
 
Big data algorithms and data structures for large scale graphs
Big data algorithms and data structures for large scale graphsBig data algorithms and data structures for large scale graphs
Big data algorithms and data structures for large scale graphs
 
"Говнокод-шоу"
"Говнокод-шоу""Говнокод-шоу"
"Говнокод-шоу"
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерности
 
ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)ALMADA 2013 (computer science school by Yandex and Microsoft Research)
ALMADA 2013 (computer science school by Yandex and Microsoft Research)
 

Último (9)

Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 

Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"

  • 1. Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись" Докладчик: Алексей Зиновьев
  • 2. ● аспирант ОмГУ, математик ● занимаюсь теорией графов, прогнозированием пробок, исследованием транспортных систем ● большой фанат различных Maps API ● лидер GDG Omsk, соорганизатор IT-субботников
  • 3. О чем этот доклад? Отдохнул на базе… данных
  • 4. Мир NoSQL баз данных велик и ужасен и каждая хороша в чем-то своем. А в чем именно? На чем основываться, выбирая NoSQL решение для своего проекта? Может быть на предпочтениях бабушки вашего ведущего программиста или на основе забрасывания сапога за ворота в ночь перед Рождеством? Давайте попробуем разобраться в критериях оценки и выявить различия между самыми популярными вариантами. Нас ждет увлекательный полет над гладью болот MongoDB, Cassandra, Riak, Hbase, Neo4j, CouchDB. А в тихом омуте, как известно, и черти водятся.
  • 6. Эмоции ● То, что мы чувствуем важно ● Мода и тренд ● Протест и компромисс ● Запечатление и эффект якоря влияют на нас не меньше чем умные статьи ● Через это должен пройти каждый и этот этап не стоит откладывать
  • 7. Эмоции: за что я не люблю ... CouchBase, потому что я замучался его тестировать Кассандра навязывает ограниченный cql и относительно медлено читает и без гектора никуда Hbase не знаю, но осуждаю Монга модная, сложная и ненадежная Riak немного нервирует, потому что я его не знаю
  • 9. Мифы - это часть борьбы Утверждение Процент согласных Mongo - ненадежна и падает 45% Cassandra надежна, устойчива и почти не падает 53% CouchDB предназначен для веба 35% Neo4j нужен только, чтобы хранить граф социальных сетей 54% Hbase нужна только тем, кто не может прикрутить к Hadoop другой нормальной базы 70% Mongo имеет отличный встроенный MapReduce 62% Cassandra навязывает нам SQL - подход 86%
  • 10. Суровая реальность ● Нет базы “моей мечты” ● Чтобы решать задачи, необходимо знакомство с основными парадигмами и их воплощениями ● Если вы будете, вопреки голосу разума, цепляться за первую любовь - вас ждет поражение
  • 11. Принципы приличной NoSQL ● Масштабируемость (автоматическое распределение данных) ● Поддержка нескольких датацентров ● Возможность добавлять прозрачно новые сервера ● Собственная, отличная от реляционной, модель данных ● Согласованность в конечном счете
  • 12. Критерии сравнения NoSQL ● ● ● ● ● ● ● ● ● ● ● кривая обучения производительность возможности языка запросов свои фреймворки и “ORM” простота интеграции с Hadoop, поддержка MapReduce поддержка основных языков программирования наличие вспомогательных средств для работы мобильная версия СУБД поддержка основных концепций по управления данными сфера влияния и распространение в проектах наличие конкурентов при решении определенной задачи
  • 13. Категоризация NoSQL систем Data Model Performance Scalability Flexibility Complexity Functionality Key–value Stores high high high none variable (none) Column Store high high moderate low minimal Document Store high variable (high) high low variable (low) Graph Database variable variable high high graph theory Relational Database variable variable low moderate relational algebra
  • 14. Сравнение возможностей I Модель данных API запросов Система хранения данных Cassandra Семейства столбцов Thrift Memtable/SSTable CouchDB Документы Map/Reduce Append-only-B-tree Hbase Семейства столбцов Thrift, REST Memtable/SSTable on HDFS MongoDB Документы Cursor B-tree Neo4j Графы Graph On-disk linked lists Riak Ключ/Значение Nested hashes, REST Hash
  • 15. Сравнение возможностей II Вторичные индексы MapReduce Произвольные запросы Cassandra да нет CQL (no joins) CouchDB да JavaScript временные представления Hbase нет Hadoop слабая поддержка MongoDB да JavaScript полный набор (no joins) Neo4j да (с помощью Lucene) нет (графы и MapReduce?) обход графа, поиск Riak да JavaScript, Erlang слабая поддержка, Lucene
  • 16. Riak: преимущества ● Отказоустойчивость (кольцо) ● Links (ссылки на другие ключи) + фильтры ключей ● MapReduce (Erlang + JS) ● REST ● Подсистема поиска ● Возможность настройки параметров согласованности и доступности на уровне отдельного запроса
  • 17. Riak: недостатки ● Бедные возможности запросов ● Нет ACID ● Неполноценная поддержка JavaScript ● Отсутствие поддержки структур данных
  • 18. Mongo: преимущества ● ● ● ● Полноценный язык запросов Aggregation framework Mongo + Node.js + JS Хранение сложных денормализованных документов ● Большой выбор индексов (Btree, 2d, 3d ● Репликация данных и сегментирование коллекций ● Community
  • 19. Mongo: недостатки ● Ограничение на размер результата (16 Мб) ● Проблема четного числа узлов и сложные выборы ● Опечатка стоит дорого ● Над планированием кластера надо думать ● Иногда навязывает воспроизведение схемы в коде (проверка типов и т.д.)
  • 20. CouchDB: преимущества ● Функции-фильтры и как следствие “псевдошардинг” ● Мобильная версия ● Простота встраивания и резервного копирования ● Функции-валидаторы, функции-представления, функции-фильтры сохраняются в текстовом виде в самой базе данных
  • 21. CouchDB: недостатки ● Не всегда удобная система репликации (“все или ничего”) ● Неполноценный язык запросов, основанный на MapReduce операциях над представлениями ● Нет нормального механизма сегментирования
  • 22. HBase: преимущества ● Версионирование и сжатие ● Горизонтальное масштабирование ● Первое место по обработке трудоемких запросов ● Быстрое восстановление после отказа ● Отзывчивое community энтузиастов ● Тесная интеграция с Hadoop
  • 23. HBase: недостатки ● Суровая документация и высокий порог вхождения ● Заимствованная терминология из мира SQL скорее мешает ● Надо не менее 5 узлов ● Нет средств сортировки и индексирования ● Строгая согласованность без возможности изменений
  • 24. Cassandra: преимущества ● Высокая доступность, восстановление на ходу ● Нет центральной точки отказа ● Datastax, Hector и все-все-все ● CQL - SQL без join ● Строка может динамически раcширяться до 2 миллиардов колонок ● Резервное копирование не нужно
  • 25. Cassandra: недостатки ● Непростая (по сравнению с Hbase) интеграция с Hadoop ● Моделирование таблиц зависит от ваших запросов ● Нет ACID, нет откатов ● Сложность в моделировании (необходимо сильно поменять взгляд на моделирование данных) ● Требовательная к RAM
  • 26. Neo4j: преимущества ● Оптимальна для сильносвязанных сущностей ● Вершины, ребра, атрибуты ● Индексы на значения атрибутов ● ACID ● REST API + Cypher ● Множество плагинов, включая 2d индекс
  • 27. Neo4j: недостатки ● Нет полноценного горизонтального масштабирования ● Плохо приспособлен для размещения на нескольких машинах ● Для полноценного удаления приходится перезапускать сервер
  • 28.
  • 29. Чемпионы-тяжеловесы Граф Число вершин Число ребер Объем данных на диске Прирост в день Web-граф 1 трлн 8 трлн 100 PB 300 TB Facebook (граф 1 млрд друзей) 140 млрд 1 PB 15 TB Дорожный граф Европы 18 млн 42 млн 20 GB 50 MB Дорожный граф Омска 80 000 160 000 300 MB 500 KB
  • 30.
  • 31.
  • 32.
  • 33. Фаза исследования Эту фазу не стоит пропускать, ибо это единственная фаза, которая позволяет вам экономить деньги. До ее начала необходимо ответить себе на вопросы о характере ваших данных и сформулировать требования по их использованию.
  • 34. Первая развилка: связи В вашем приложении есть сеть данных, граф знаний, а самый популярный запрос связан с обходом сложной иерархии объектов? Вы готовы отказаться размещения на нескольких машинах? Neo4j спешит на помощь!
  • 35. Вторая развилка: BigData Данные о достаточно большом количестве объектов, изменяющихся во времени и пространстве (движения звезд, личная переписка, фотки в Instagram)
  • 36. Вторая развилка: BigData Придется попрощаться с SQL и наращиванием мощности одного сервера. Впрочем и Neo4j для этого не готов
  • 37. Третья развилка: простота Нужно лишь чтение/запись по ключу, безграничное масштабирование, отсутствие точек общего отказа Между данными почти нет связей. Riak оставляет всех позади себя, добавляя возможность MapReduce над вашими данными.
  • 38. Четвертая развилка: иерархия Структура данных отличается высокой изменчивостью и большой вложенностью. Связность отдельных сегментов данных невысока. Riak уходит, на сцену выходит Mongo DB, кружась в смертельном танго с CouchDB.
  • 39. Пятая развилка: отчеты Необходима обработка и сложная агрегация данных при помощи Hadoop. Данные довольно плоские. Hbase царствует безраздельно, но Cassandra наступает ей на пятки, предлагая ряд преимуществ.
  • 40. О данных замолвите слово ● Данные - это океан, полный морских существ ● Но пока они не выловлены, пользы от никакой ● Средство лова: удочку, сеть, глушить гранатой или вычерпывать кастрюлей, выбираем мы сами
  • 41. Список источников 1. Эрик Редмонд, Джим Р. Уилсон “Семь баз данных за семь недель” 2. “A generic intro to NoSQL” by Ben Scofield. 3. http://nosql-database.org/ 4. Исследования компании Тамтэк 5. Собственные исследования
  • 42. Данные - все, способ хранения - ничто!