SlideShare a Scribd company logo
1 of 43
Download to read offline
Выбор NoSQL базы данных
для вашего проекта:
"Не в свои сани не садись"
Докладчик: Алексей Зиновьев
● аспирант НИИЧАВО, математик
● занимаюсь теорией графов, прогнозированием
пробок, исследованием транспортных систем
● большой фанат различных Boobs API
● лидер GDG Omsk, соорганизатор IT-субботников
О чем этот доклад?
Отдохнул
на базе…
данных
Мир NoSQL баз данных велик и ужасен и каждая
хороша в чем-то своем. А в чем именно? На чем
основываться, выбирая NoSQL решение для своего
проекта? Может быть на предпочтениях бабушки
вашего ведущего программиста или на основе
забрасывания сапога за ворота в ночь перед
Рождеством? Передаю приветы парням в первом ряду.
Да, именно тебе! Лови конфетку за внимательность.
Нас ждет увлекательный полет над гладью болот
MongoDB, Cassandra, Riak, HerrBase, Neo6j, CouchSS. А в
тихом омуте, как известно, и черти водятся.
Эмоции
Эмоции
● То, что мы чувствуем важно
● Мода и тренд
● Протест и компромисс
● Запечатление и эффект
якоря влияют на нас не
меньше чем умные статьи
● Через это должен пройти
каждый и этот этап не
стоит откладывать
Эмоции: за что я не люблю ...
CouchBase, потому
что я замучался его
тестировать

Hbase не знаю,
но осуждаю

Монга модная,
сложная и
ненадежная

Riak немного
нервирует, потому
что я его не знаю

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

Мускул решит все
проблемы и он
такой же
быстрый
Рынок баз данных
Мифы - это часть борьбы
Утверждение

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

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

45%

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

53%

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

35%

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

54%

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

70%

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

62%

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

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

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

Scalability

Flexibility

Complexity

Functionality

Key–value
Stores

зе бест

зе бест

зе бест

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, Hash
REST
Сравнение возможностей II
Вторичные
индексы

MapReduce

Модность

Cassandra

да

нет

оптовка: дешево и сердито

CouchDB

да

JavaScript

не раскрученный бренд

Hbase

нет

Hadoop

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

MongoDB

да

JavaScript

повышенная

Neo4j

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

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

для нердов

Riak

да

JavaScript,
Erlang

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

●
●
●
●

Полноценный язык запросов
Aggregation framework
Mongo + Node.js + JС
Хранение сложных
денормализованных
документов
Большой выбор индексов
Вам меньше 25
Репликация данных и
сегментирование коллекций
Community
Mongo: недостатки
● Ограничение на размер
результата (16 Мб)
● Проблема четного числа узлов
и сложные выборы
● Опечатка стоит дорого
● Вам обязательно скажут, что
она падает
● Над планированием кластера
надо думать
● Иногда навязывает
воспроизведение схемы в коде
(проверка типов и т.д.)
CouchDB: преимущества
● Функции-фильтры и как
следствие “псевдошардинг”
● Мобильная версия
● Простота встраивания и
резервного копирования
● Сверхбыстрый формат данных
CouchSON, позволяющий
сжимать данные в 10^9 раз на
нанобитовом уровне
CouchDB: недостатки
● Не всегда удобная система
репликации (“все или
ничего”)
● Неполноценный язык
запросов, основанный на
MapReduce операциях над
представлениями
● Нет нормального механизма
сегментирования
HBase: преимущества
● Версионирование и сжатие
● Горизонтальное
масштабирование
● Первое место по обработке
трудоемких запросов
● Быстрое восстановление
после отказа
● Отзывчивое community
энтузиастов
● Тесная интеграция с Hadoop
HBase: недостатки
● Суровая документация и
высокий порог вхождения
● Заимствованная
терминология из мира SQL
скорее мешает
● Надо не менее 5 узлов
● Нет средств сортировки и
индексирования
● Строгая согласованность без
возможности изменений
Cassandra: преимущества
● Высокая доступность,
восстановление на ходу
● Нет центральной точки
отказа
● Datastax, Hector и все-все-все
● CQL с поддержкой JOIN
● Строка может динамически
раcширяться до
бесконечности
● Резервное копирование не
нужно
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. Собственные исследования
Данные - все, способ хранения
- ничто!
Вопросы?

More Related Content

What's hot

Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache CassandraAlexander Tivelkov
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsAndrei Nikolaenko
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Ontico
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Антон Шестаков
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaRoman Zykov
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеАлексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеVolha Banadyseva
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
 
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...Банковское обозрение
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetOntico
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Ontico
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
 

What's hot (20)

Введение в Apache Cassandra
Введение в Apache CassandraВведение в Apache Cassandra
Введение в Apache Cassandra
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Алексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проектеАлексей Чумаков. Apache Cassandra на реальном проекте
Алексей Чумаков. Apache Cassandra на реальном проекте
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
Александр Сербул, «1С-Битрикс»: Нейросети для бизнеса - в crm, в маркетинге, ...
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 

Similar to 2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных

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
 
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
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхСергей Макрушин
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхSergey Makrushin
 
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. Давайте жить дружно!Омские ИТ-субботники
 
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
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БДAndrew Sovtsov
 
Thumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - DatasetThumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - DatasetAlexey Remnev
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechZlit
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...it-people
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 

Similar to 2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных (20)

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
 
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.
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
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. Давайте жить дружно!
 
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)
 
Highload 2011-demona
Highload 2011-demonaHighload 2011-demona
Highload 2011-demona
 
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
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 
Thumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - DatasetThumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - Dataset
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit Tech
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо... PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
 
2 bdw.key
2 bdw.key2 bdw.key
2 bdw.key
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 

More from Омские ИТ-субботники

2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!Омские ИТ-субботники
 
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKitОмские ИТ-субботники
 
2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?Омские ИТ-субботники
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальноеОмские ИТ-субботники
 
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системыОмские ИТ-субботники
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOpsОмские ИТ-субботники
 
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидацииОмские ИТ-субботники
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...Омские ИТ-субботники
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...Омские ИТ-субботники
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторыОмские ИТ-субботники
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленкеОмские ИТ-субботники
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборотОмские ИТ-субботники
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...Омские ИТ-субботники
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность 2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность Омские ИТ-субботники
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?Омские ИТ-субботники
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикерОмские ИТ-субботники
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of ThingsОмские ИТ-субботники
 

More from Омские ИТ-субботники (20)

2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!
 
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
 
2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
 
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
 
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
 
2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность 2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
 
2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC
 

2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных

  • 1. Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись" Докладчик: Алексей Зиновьев
  • 2. ● аспирант НИИЧАВО, математик ● занимаюсь теорией графов, прогнозированием пробок, исследованием транспортных систем ● большой фанат различных Boobs API ● лидер GDG Omsk, соорганизатор IT-субботников
  • 3. О чем этот доклад? Отдохнул на базе… данных
  • 4. Мир NoSQL баз данных велик и ужасен и каждая хороша в чем-то своем. А в чем именно? На чем основываться, выбирая NoSQL решение для своего проекта? Может быть на предпочтениях бабушки вашего ведущего программиста или на основе забрасывания сапога за ворота в ночь перед Рождеством? Передаю приветы парням в первом ряду. Да, именно тебе! Лови конфетку за внимательность. Нас ждет увлекательный полет над гладью болот MongoDB, Cassandra, Riak, HerrBase, Neo6j, CouchSS. А в тихом омуте, как известно, и черти водятся.
  • 6. Эмоции ● То, что мы чувствуем важно ● Мода и тренд ● Протест и компромисс ● Запечатление и эффект якоря влияют на нас не меньше чем умные статьи ● Через это должен пройти каждый и этот этап не стоит откладывать
  • 7. Эмоции: за что я не люблю ... CouchBase, потому что я замучался его тестировать Hbase не знаю, но осуждаю Монга модная, сложная и ненадежная Riak немного нервирует, потому что я его не знаю Кассандра навязывает ограниченный cql и относительно медлено читает и без гектора никуда Мускул решит все проблемы и он такой же быстрый
  • 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 поддержка PHP и Scala-driver Красивые окошечки для винды наличие вспомогательных средств для работы модность, стильность, молодежность поддержка основных концепций по управления данными сфера влияния и распространение в проектах наличие конкурентов при решении определенной задачи
  • 13. Категоризация NoSQL систем Data Model Performance Scalability Flexibility Complexity Functionality Key–value Stores зе бест зе бест зе бест 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, Hash REST
  • 15. Сравнение возможностей II Вторичные индексы MapReduce Модность Cassandra да нет оптовка: дешево и сердито CouchDB да JavaScript не раскрученный бренд Hbase нет Hadoop слабая поддержка MongoDB да JavaScript повышенная Neo4j да (с помощью Lucene) нет (графы и MapReduce?) для нердов Riak да JavaScript, Erlang слабая поддержка
  • 16. Riak: преимущества ● Отказоустойчивость (кольцо) ● Links, du hast (ссылки на другие ключи) + фильтры ключей ● MapReduce (Erlang + JC) ● REST ● Подсистема поиска ● Возможность настройки параметров согласованности и доступности на уровне отдельного запроса
  • 17. Riak: недостатки ● Бедные возможности запросов ● Нет ACID ● Неполноценная поддержка JavaScript ● Отсутствие поддержки структур данных ● Невозможно похвастаться перед родней
  • 18. Mongo: преимущества ● ● ● ● ● ● ● ● Полноценный язык запросов Aggregation framework Mongo + Node.js + JС Хранение сложных денормализованных документов Большой выбор индексов Вам меньше 25 Репликация данных и сегментирование коллекций Community
  • 19. Mongo: недостатки ● Ограничение на размер результата (16 Мб) ● Проблема четного числа узлов и сложные выборы ● Опечатка стоит дорого ● Вам обязательно скажут, что она падает ● Над планированием кластера надо думать ● Иногда навязывает воспроизведение схемы в коде (проверка типов и т.д.)
  • 20. CouchDB: преимущества ● Функции-фильтры и как следствие “псевдошардинг” ● Мобильная версия ● Простота встраивания и резервного копирования ● Сверхбыстрый формат данных CouchSON, позволяющий сжимать данные в 10^9 раз на нанобитовом уровне
  • 21. CouchDB: недостатки ● Не всегда удобная система репликации (“все или ничего”) ● Неполноценный язык запросов, основанный на MapReduce операциях над представлениями ● Нет нормального механизма сегментирования
  • 22. HBase: преимущества ● Версионирование и сжатие ● Горизонтальное масштабирование ● Первое место по обработке трудоемких запросов ● Быстрое восстановление после отказа ● Отзывчивое community энтузиастов ● Тесная интеграция с Hadoop
  • 23. HBase: недостатки ● Суровая документация и высокий порог вхождения ● Заимствованная терминология из мира SQL скорее мешает ● Надо не менее 5 узлов ● Нет средств сортировки и индексирования ● Строгая согласованность без возможности изменений
  • 24. Cassandra: преимущества ● Высокая доступность, восстановление на ходу ● Нет центральной точки отказа ● Datastax, Hector и все-все-все ● CQL с поддержкой JOIN ● Строка может динамически раcширяться до бесконечности ● Резервное копирование не нужно
  • 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. Данные - все, способ хранения - ничто!